チュートリアル : Hello World: スマート デバイスの COM 相互運用の例
更新 : 2007 年 11 月
このチュートリアルでは、簡単な COM オブジェクトとマネージ アプリケーションを 1 つのソリューションとして結合します。
メモ : |
---|
お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。 |
このチュートリアルは、[Visual C++ 開発設定] を使用して記述されています。
COM オブジェクトの作成
スマート デバイスの ATL プロジェクトを作成するには
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。[プロジェクトの種類] ペインで [Visual C++] を展開し、[スマート デバイス] をクリックします。
[テンプレート] ペインの [ATL スマート デバイス プロジェクト] をクリックします。
[プロジェクト名] ボックスに「HelloCOMObject」と入力します。
[ソリューション名] ボックスに「InteropSolution」と入力します。
[OK] をクリックして、ATL スマート デバイス プロジェクト ウィザードを起動します。
[完了] をクリックして、ウィザードを閉じます。
このチュートリアルでは、ウィザードで既定の設定を変更する必要はありません。
クラスを追加するには
ソリューション エクスプローラ で、[HelloCOMObject] プロジェクトを右クリックし、[追加] をポイントします。次に、[クラス] をクリックして [クラスの追加] ダイアログ ボックスを開きます。
[カテゴリ] ペインで、[スマート デバイス] をクリックします。
[テンプレート] ペインで、[ATL シンプル オブジェクト] をクリックし、[追加] をクリックして ATL シンプル オブジェクト ウィザードを開きます。
[短い名前] ボックスに「Hello」と入力します。
左ペインで、[オプション] をクリックして [オプション] ページを開きます。
[スレッド モデル] グループの [フリー] をクリックし、[完了] をクリックします。
クラスにメソッドを追加するには
デスクトップのタブから、または [表示] メニューから [クラス ビュー] ウィンドウを開きます。
[HelloCOMObject] を展開し、[IHello] インターフェイスを表示します。
[IHello] を右クリックし、[追加] をポイントします。次に、[メソッドの追加] をクリックしてメソッド追加ウィザードを開きます。
[メソッド名] ボックスに「HelloWorld」と入力します。
[パラメータの型] ボックスで、[BSTR*] を選択します。
[パラメータ名] ボックスに、「text」と入力します。
[パラメータの属性] グループの [out] を選択します。
[追加] をクリックします。
メソッド ボックスに [out] BSTR* text と表示されます。
[完了] をクリックして、メソッド追加ウィザードを閉じます。
STDMETHOD(HelloWorld)(BSTR* text) メソッドが Hello.h ファイルに表示されます。
メソッドに実装を追加するには
ソリューション エクスプローラで、Hello.cpp をダブルクリックしてコード エディタでファイルを開きます。
STDMETHODIMP セクションで、return ステートメントの前に次の実装コードを挿入します。
*text = SysAllocString(L"Hello World!");
[ビルド] メニューの [HelloCOMObject のビルド] をクリックします。
COM オブジェクトがソリューションの一部となり、チュートリアルの最初の部分が完了しました。
マネージ プロジェクトの作成
ソリューションにマネージ プロジェクトを追加するには
ソリューション エクスプローラの [InteropSolution] を右クリックし、[追加] をポイントして [新しいプロジェクト] をクリックします。
[プロジェクトの種類] ペインで、[Visual C#] を展開し、[スマート デバイス] をクリックします。次に、[テンプレート] ペインで、[スマート デバイス プロジェクト] をクリックし、[名前] ボックスに「SayHello」と入力し、[OK] をクリックします。
[新しいスマート デバイス プロジェクトの追加] ダイアログ ボックスの [デバイス アプリケーション] をクリックし、[OK] をクリックします。
SayHello マネージ プロジェクトがソリューションの一部として作成され、Windows Mobile 5.0 Pocket PC フォームがデザイナ ウィンドウに表示されます。
マネージ プロジェクトで、COM オブジェクトを参照として追加します。
マネージ プロジェクトで COM オブジェクトを参照として追加するには
ソリューション エクスプローラで、SayHello プロジェクトを右クリックし、[参照の追加] をクリックします。
[参照の追加] ダイアログ ボックスで、[参照] をクリックします。
SayHello フォルダが [ファイルの場所] ボックスに表示されます。
親フォルダに移動します (このチュートリアルでは、InteropSolution です)。
フォルダの内容が示されているウィンドウで、[HelloCOMObject] をダブルクリックし、[Windows Mobile 5.0 Pocket PC SDK (ARMV4)] をダブルクリックします。次に、[デバッグ] をダブルクリックし、[HelloCOMObject.dll] をクリックします。
[OK] をクリックして、[参照の追加] ダイアログ ボックスを閉じます。
メモ : 管理者としてログインする必要があります。Windows Vista では、Visual Studio の起動時に [管理者として実行] をクリックします。
ソリューション エクスプローラで [Form1.cs] を右クリックし、[コードの表示] をクリックします。
ファイルの上部の Using directives 領域に、次のコードを追加します。
using HelloCOMObjectLib;
マネージ プロジェクトへのイベント処理の追加
マネージ プロジェクトにイベント処理を追加して、構築するには
Form1 デザイナを開きます。
ツールボックスから、フォームに Button をドラッグします。
ボタンをダブルクリックして、クリック イベント時にコード エディタを開きます。
ボタンの次のイベント処理コードを挿入します。
string text; HelloClass h = new HelloClass(); h.HelloWorld(out text); MessageBox.Show(text);
[ビルド] メニューの [SayHello のビルド] をクリックします。
ソリューションの最終調整
ソリューションを配置用に構成するには
ソリューション エクスプローラで、SayHello プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] をクリックします。
ソリューション エクスプローラで、[InteropSolution] ソリューションを右クリックし、[プロジェクト依存関係] をクリックします。
[プロジェクト依存関係] ダイアログ ボックスで、[プロジェクト] ボックスの一覧の [SayHello] を選択し、[依存先] ボックスで [HelloCOMObject] を選択します。
[OK] をクリックします。
これで、ソリューションを配置できるようになります。
構成されたソリューションの配置
ソリューションを配置するには
[デバッグ] メニューの [デバッグなしで開始] をクリックします。
[配置] ダイアログ ボックスで、[Windows Mobile5.0 Pocket PC エミュレータ] をクリックし、[配置] をクリックします。
「チュートリアル : マネージ コードとネイティブ コードの両方を含むソリューションのデバッグ」で使用するために、このソリューションを保存します。