COM ライブラリを使用するアプリケーションを入手しましたが、そのアプリケーションがその COM ライブラリを LocalServer または In-Proc として使用しているかどうかを知るにはどうすればよいでしょうか?
私はこのように構築されているコードを見ました:
DATCOMLib::ITEmulationPtr pTE(__uuidof(DATCOMLib::TEmulation));
複数の方法を使用して見つけることができます
コードを見て - 「 CreateInstance」または「CoCreateInstance 」を呼び出すときに渡されるクラス コンテキストを確認します- (CLSCTX_INPROC_XXXX の場合、インプロセス サーバーは、呼び出し元のアプリケーション プロセスのアドレス空間にロードされる DLL であることを意味します。CLSCTX_LOCAL_SERVER、CLSCTX_REMOTE_SERVER - 次に、別のプロセスとして実行されている COM サーバーです。1 つまたは複数のフラグを組み合わせた #defines がいくつかあります。ググってみてください)。
ITEmulationPtr.CreateInstance(uuid(TEmulation), 0, CLSCTX_XXX)
COMコンポーネントがインストールされているマシンにアクセスできる場合は、上記の回答でPeterが示した手順に従うことができます