2

MSDN には、動的仮想チャネル プラグインの作成方法に関する C++ の例があります。

私の問題は、それをコンパイルする方法がわからないことです。

ATL プロジェクトを作成し、main.cppmsdn にあるコードをコピー アンド ペーストする必要がありますか? プロジェクトを何と呼びますか? ATL プロジェクトを nameDVCPluginで作成すると、Visual Studio 2008 が自動的に を作成DVCPlugin_i.h fileします。それ以外の場合、そのファイルはありません。

tsvirtualchannels.hは Windows 7 SDK の一部であるため、少なくともそのインクルードで問題はありません。

私が得ているエラーの1つはこれです:

&CLSID_DVCSamplePlugin認識されない識別子

名前で ATL プロジェクトを作成しようとしましたDVCSamplePluginが、上記と同じメッセージを受け取りました。

そのソースコードをコンパイルできるようにするために必要な提案はありますか?

4

2 に答える 2

2

数時間かかりましたが、VS 2012 を使用してクライアント プラグインをビルドするためのソースを入手しました。以下が私の手順です。

  1. という名前の新しい ATL プロジェクトを開始しDVCPluginます。DLL のオプションを選択します。
  2. COM+ のサポートを選択し、オブジェクト レジストラーのボックスをオンにします。
  3. という名前のファイルGUID.cppを DVCPlugin プロジェクトに追加します。stdafx.hこのファイルに含めます。
  4. ATL は、独自の IDL エントリと GUID を持つ CompReg という名前のクラスを提供してくれました。CDVCSamplePluginその GUID をクラスに関連付ける必要がありました。
  5. で、先頭DVCPlugin.cppに include for を追加します<tsvirtualchannels.h>
  6. の定義の後に残りのサンプル コードを貼り付けますDllInstall()
  7. DECLARE_REGISTRY_RESOURCEID(IDR_PLUGIN)行を に変更しDECLARE_REGISTRY_RESOURCEID(IDR_DVCPLUGIN)ます。
  8. ソリューションをビルドすると、DVCPlugin.rgsファイル内のレジストリ スクリプトがサイレント モードで実行されるようです。ただし、スレッド モデルを Free に変更する必要がありました。
  9. mstsc.exe が 64 ビットの場合、動的検出を機能させるには 64 ビットのプラグイン dll が必要です。
于 2015-02-02T22:50:16.100 に答える
1

これは、リモート デスクトップ接続をテストするための単なるコードです。

リモート デスクトップ接続 (RDC) クライアントによって実装される "エコー" リスナーがあり、これは常に存在し、着信接続をリッスンします。動的仮想チャネル (DVC) モジュールのサーバー側を作成する場合、簡単なテストとして、"ECHO" という名前のエンドポイントを開くことができます。このエンドポイントからインスタンス化されたチャネルへの書き込みは、同じデータを受け取ることになります。

MSDNから。このようなプロジェクトは通常、一部の SDK に含まれています。そして、これはWindows 8 SDKの一部のようです

更新: Tim からの批判 (以下を参照) の後、MSDN 情報を含むこれらのリンクを追加することにしました - リモート デスクトップ サービス。TS-Teleport: サンプルの説明 リモート デスクトップ サービスのブログ。動的仮想チャネル

于 2013-01-05T20:12:49.873 に答える