次の方法で共有


COM サーバーおよび COM コンテナーのデバッグ

COM アプリケーションは、プログラマが直接コントロールできないところで多くのタスクを実行します。 DLL 間の通信、オブジェクトの使用数のカウント、クリップボード処理などは、予期せぬ動作に遭遇する領域のほんの一例です。 このような事態が発生した場合は、まず問題の原因を追及します。

Visual Studio のデバッガーは、コンテナーやサーバー間のステップやステップ インをサポートしています。 この機能には、リモート プロシージャ コール (RPC) 間のステップも含まれます。

このトピックの内容

  1. Debugging a COM Server and Container in the Same Solution

  2. Debugging a Server Application Without Container Information

  3. Debugging a Server and Domain Isolation (SDI) Application

同じソリューション内の COM サーバーおよび COM コンテナーのデバッグ

同じソリューションで 2 つのプロジェクトを使用して、COM サーバーおよび COM コンテナーをデバッグできます。 それぞれのプロジェクトに適切なブレークポイントを設定してデバッグを行います。 ブレークポイントが設定されているサーバーをコンテナーが呼び出すと、サーバーのコードに戻るまで、つまりデバッグが終了するまで、コンテナーは待機しています。

COM コンテナーのデバッグは、標準的なプログラムのデバッグによく似ています。 違いがあるのは、コンテナー アプリケーションにデータをドラッグするなど、コールバックを生成するイベントをデバッグする場合です。 この場合は、ブレークポイントをコールバック関数の中に設定する必要があります。

コンテナー情報のないサーバー アプリケーションのデバッグ

コンテナー アプリケーションのデバッグ情報が不要な場合、サーバー アプリケーションは次の 3 つの手順でデバッグします。

  1. サーバーのデバッグを通常のアプリケーションと同様に開始します。

  2. 必要な場所にブレークポイントを設定します。

  3. コンテナー アプリケーションを起動します。

サーバーとドメインの分離 (SDI) アプリケーションのデバッグ

SDI サーバー アプリケーションをデバッグする場合は、C/C++、C#、または Visual Basic のプロジェクトの [プロジェクト プロパティ ページ] ダイアログ ボックスで、[コマンド ライン引数] プロパティに /Embedding または /Automation を指定する必要があります。

デバッガーはこれらのコマンド ライン引数を利用して、コンテナーから起動されたようにサーバー アプリケーションを起動できます。 次に、プログラム マネージャーまたはファイル マネージャーからコンテナーを起動すると、コンテナーはデバッガー中で起動されたサーバーのインスタンスを使用できます。

[プロジェクト プロパティ ページ] ダイアログ ボックスを表示するには、ソリューション エクスプローラーでプロジェクトを右クリックし、ショートカット メニューの [プロパティ] をクリックします。 [コマンド ライン引数] プロパティを表示するには、[構成プロパティ] カテゴリを展開し、[デバッグ] ページをクリックします。

参照

その他の技術情報

COM および ActiveX のデバッグ