QStat サンプル : ビジネス ロジックを公開するための COM オブジェクトのラップ

更新 : 2007 年 11 月

QStat サンプルでは、COM オブジェクトへのアクセスをラップし、C++ を使用して .NET Framework クライアントに機能を公開する DLL の作成方法を示します。

800dt86w.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

このサンプル コードは概念を示す目的で提供されているものです。必ずしも最も安全なコーディング手法に従っているわけではないので、アプリケーションまたは Web サイトでは使用しないでください。Microsoft は、サンプル コードが意図しない目的で使用された場合に、付随的または間接的な損害について責任を負いません。

サンプルとそのインストール手順を取得するには

  • Visual Studio で、[ヘルプ] メニューの [サンプル] をクリックします。

    詳細については、「サンプル ファイルの格納場所」を参照してください。

  • 使用できるサンプルの最新バージョンと完全な一覧については、オンラインの Visual Studio 2008 Samples のページを参照してください。

  • サンプルは、コンピュータのハード ディスク上にもあります。既定では、サンプルおよび Readme ファイルは、\Program Files\Visual Studio 9.0\Samples\ の下のフォルダにコピーされます。Visual Studio Express Edition の場合、すべてのサンプルはオンライン上にあります。

サンプルのビルドと実行

サンプルをビルドするには

  1. Visual Studio IDE で、QStat.sln ソリューション ファイルを読み込みます。

  2. ソリューション エクスプローラで、[QStat] ソリューションを右クリックします。

  3. ショートカット メニューの [ソリューションのビルド] をクリックします。

サンプルを実行するには

  1. ソリューション エクスプローラで、[netClient] プロジェクトを右クリックします。

  2. [デバッグ] メニューの [開始] をクリックします。

クライアントが開始されると、ビジネス ロジックの呼び出しが行われていることを通知する一連のメッセージがコンソールに出力されます。

800dt86w.alert_note(ja-jp,VS.90).gifメモ :

コンポーネント間の対話をより詳しく理解するには、ブレークポイントを設定するか、[デバッグ] メニューの [ステップ イン] または [ステップ オーバー] を使用して、コードを 1 ステップずつ実行します。

プロジェクトの説明

このサンプルでは、ビジネス ロジック自体の実装ではなく、COM クライアントおよび .NET Framework クライアントのビジネス ロジックへのアクセスに重点が置かれています。そのため、このサンプルに示されたビジネス ロジックは、比較的簡単なものです。実際に、このサンプルのビジネス ロジックは簡単な算術演算 (相乗平均、調和平均、二次平均の計算) を行い、結果をクライアントに返します。

プログラミングでは、ビジネス ロジックと、該当するビジネス ロジック (この例では COM) を公開するための構造を区別することをお勧めします。ただし、このサンプルでは、使用する COM オブジェクト内にビジネス ロジックが直接実装され、COM オブジェクトを通じてアクセスする以外には、基になるビジネス ロジックにアクセスできないと仮定しています。

このサンプルでは、#import を通じて COM オブジェクトを使用するラッパー DLL を作成して、.NET Framework クライアントによって使用される .NET Framework クラスを公開しています。これは、#import を通じて入手した COM スマート ポインタのデータ メンバが含まれたネイティブ C++ クラス nativeMeanCalc を定義して行われます。定義された .NET Framework クラスには、ネイティブ C++ クラスへのポインタがあります。.NET Framework クラス netMeanCalc には、nativeMeanCalc オブジェクトへのポインタが含まれており、このポインタによって目的の COM オブジェクトへの経路が完成します。netMeanCalc は、.NET Framework クライアントによって使用されるパブリック クラスです。

以下の 2 つのクライアント プロジェクトがあります。

  • nativeClient は、ネイティブ C++ で実装された COM クライアントです。

  • netClient は、C++ の新しい構文を使用して作成されています。

クラスとキーワード

このサンプルでは、次のキーワードを使用します。

__gc; #using; #import; try; catch; _com_error; Console::WriteLine

参照

その他の技術情報

相互運用性のサンプル