1

Visual D 2010 で単純な COM サーバーを実行するのに苦労しています。これまでに行った手順は次のとおりです。

  1. タイプ ダイナミック ライブラリ (DLL) のクリーンな Visual D 2010 ソリューション
  2. の内容をにコピーdserver.dしましたdllmain.d
  3. ファイルchello.ddserver.defソリューションのソース フォルダーにコピーし、<D install dir>\dmd2\windows\lib.
  4. ソリューション エクスプローラーでプロジェクトを右クリックし、[追加] -> [既存のアイテム...] をクリックして、コピーしたファイルをソリューションに追加しました。
  5. ファイルの名前を に変更し、既存のプロジェクトのファイルを上書きdserver.defします。dll.def
  6. このフォーラム スレッドに書かれているように、chello.dおよびdllmain.d(当初は)にパッチを適用しました。dserver.d
  7. デバッグをビルドします。エラーなし。
  8. を呼び出すregsvr32 COMServer.dllと、次の 4 つのメッセージ ボックスが返されます。

ここに画像の説明を入力

それから

ここに画像の説明を入力

それから

ここに画像の説明を入力

そして最後に

ここに画像の説明を入力

VBA から COM オブジェクトにアクセスできません。また、DLL を直接参照すると ([参照] ボタンを使用して COMServer.dll をポイントすると)、「指定されたファイルへの参照を追加できません」というエラー メッセージが表示されて失敗します。

4

2 に答える 2

1

フォーラムをもう一度調べたところ、サンプルの問題は Windows XP の TLS に関連しているようです。ここに(ややハックな)ソリューションを投稿しました:

http://forum.dlang.org/thread/mqoxluonyjdtjxauaxnl@forum.dlang.org?page=2

于 2013-11-09T23:45:14.297 に答える
0

実用的な答えを提供することはできません。これは 1 年前のようです。COM サーバーの使用例を取得しようとしていました。これはJuno (64 ビットには対応していません) を使用しており、Visual D とは何の関係もありません。私が遭遇した問題は、サーバーの登録に関連していました (「サイド バイ サイド構成が正しくありません」)。

COM に関する私の資格は、Juno の歴史の中にすべてあります (あまり多くはありません)。COM に精通している場合は、さらに進んでください。最新の DMD 用にコンパイルされていない場合はお知らせください (とにかく 2.064 はまだリリースされていません)。

于 2013-11-06T04:15:44.280 に答える