逐步解說:Hello World:智慧型裝置的 COM Interop 範例
更新:2007 年 11 月
本逐步解說將簡單的 COM 物件和 Managed 應用程式結合在一個解決方案中。
注意事項: |
---|
您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。如需詳細資訊,請參閱 Visual Studio 設定。 |
此逐步解說是使用 [Visual C++ 開發設定] 所撰寫。
建立 COM 物件
若要建立智慧型裝置 ATL 專案
指向 [檔案] 功能表上的 [新增],按一下 [專案],展開 [專案類型] 窗格中的 [Visual C++],然後按一下 [智慧型裝置]。
在 [範本] 窗格中,按一下 [ATL 智慧型裝置專案]。
在 [名稱] 方塊中,輸入 HelloCOMObject。
在 [方案名稱] 方塊中,輸入 InteropSolution。
按一下 [確定] 啟動 [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 物件已經成為方案的一部分,此逐步解說的第一個部分也已經完成。
建立 Managed 專案
若要將 Managed 專案加入至方案
在 [方案總管] 中,以滑鼠右鍵按一下 [InteropSolution],指向 [加入],然後按一下 [新增專案]。
在 [專案類型] 窗格中,展開 [Visual C#],按一下 [智慧型裝置],按一下 [範本] 窗格中的 [智慧型裝置專案],在 [名稱] 方塊中輸入 SayHello,然後按一下 [確定]。
在 [加入新智慧型裝置專案] 對話方塊中,按一下 [裝置應用程式],然後按一下 [確定]。
SayHello Managed 專案就會建立為方案的一部分,[設計工具] 視窗中也會出現 Windows Mobile 5.0 Pocket PC 表單。
在 Managed 專案中加入 COM 物件做為參考
若要在 Managed 專案中加入 COM 物件做為參考
在 [方案總管] 中,以滑鼠右鍵按一下 [SayHello] 專案,然後按一下 [加入參考]。
在 [加入參考] 對話方塊中,按一下 [瀏覽]。
[SayHello] 資料夾會出現在 [查詢] 方塊中。
巡覽至上一層資料夾 (在本逐步解說中則是 [InteropSolution])。
在顯示資料夾內容的視窗中,依序按兩下 [HelloCOMObject]、[Windows Mobile 5.0 Pocket PC SDK (ARMV4)]、[Debug],然後按一下 [HelloCOMObject.dll]。
按一下 [確定] 關閉 [加入參考] 對話方塊。
注意事項: 您必須以系統管理員身分登入。在 Windows Vista 中,請在啟動 Visual Studio 時,選取 [以系統管理員身分執行]。
在 [方案總管] 中,以滑鼠右鍵按一下 [Form1.cs],然後按一下 [檢視程式碼]。
在檔案頂端的 [Using directives] 區域中,加入下列程式碼:
using HelloCOMObjectLib;
將事件處理加入至 Managed 專案
若要將事件處理加入至 Managed 專案並予以建置
開啟 Form1 設計工具。
從 [工具箱] 將 [按鈕] 拖曳到表單上。
按兩下此按鈕,在 Click 事件開啟程式碼編輯器。
插入下列按鈕事件處理程式碼:
string text; HelloClass h = new HelloClass(); h.HelloWorld(out text); MessageBox.Show(text);
在 [建置] 功能表上,按一下 [建置 SayHello]。
對方案做最後的調整
若要設定方案以進行部署
在 [方案總管] 中,以滑鼠右鍵按一下 [SayHello] 專案,然後按一下 [設定為啟始專案]。
在 [方案總管] 中,以滑鼠右鍵按一下 [InteropSolution] 方案,然後按一下 [專案相依性]。
在 [專案相依性] 對話方塊中,選取 [專案] 下拉式清單中的 [SayHello],然後在 [相依於] 方塊中選取 [HelloCOMObject]。
按一下 [確定]。
方案現在就可供您部署了。
部署混合方案
若要部署方案
在 [偵錯] 功能表上,請按 [啟動但不偵錯]。
在 [部署] 對話方塊中,按一下 [Windows Mobile5.0 Pocket PC 模擬器],然後按一下 [部署]。
儲存這個方案,以便在逐步解說:偵錯包含 Managed 程式碼和機器碼的方案中使用。