6

RDP クライアントが組み込まれた私の古い Delphi 7 プログラムは何年も前から動作していましたが、Windows 8 でアクセス違反が発生し、RDP 8 を Windows 7 にインストールすると、mstscax.dll ファイル (ActiveX コンポーネントを含む) がバージョン 6.2 に更新されます。 .

最近まで、私のプロジェクトは mstscax.dll v6.0 からタイプ ライブラリをインポートしていました。GUID がレジストリにある場合は TMsRdpClient5 を使用し、そうでない場合は XP との下位互換性のために TMsRdpClient2 を使用していました。この新しい問題を調査するために、Delphi 7 が存在する Windows 7 32 ビットに RDP 8 をインストールし、新しい Type-Library MSTSCLib_TLB をインポートしました。これが私の発見です。

すべてのコンポーネントで、Domain や ColorDepth などのプロパティをエラーなしでコンポーネントに直接設定できます。しかし、AdvancedSettings2.RDPPort、AdvancedSettings2.ClearTextPassword、または SecuredSettings2.StartProgram などのプロパティを設定したい場合、「モジュール mstscax.dll のアクセス違反。アドレスの読み取り...」という結果になります。

これらのプロパティはすべて「サブ インターフェイス」に存在します。問題は、インポートされたライブラリ コードのこれらの関数 (「サブ インターフェイス」を返す) がアクセス違反になることです。

function Get_AdvancedSettings2: IMsRdpClientAdvancedSettings;
function Get_SecuredSettings2: IMsRdpClientSecuredSettings;

Microsoft は、インポートされたタイプ ライブラリと連携できない mstscax.dll で何を変更しましたか? タイプ ライブラリを最新の Delphi XE3 にインポートし、それを Delphi 7 で使用して、新しいテクノロジを正しく実装することはできますか?

私の Delphi 7 にはすべてのアップデートがインストールされています。どんな助けでも大歓迎です。

4

0 に答える 0