使用ATL建立程序外元件

2021-08-27 17:12:09 字數 2334 閱讀 6302

一、建立乙個程序外元件

2)在project name欄輸入step02,單

擊ok按鈕,

在下乙個視窗中的server type欄選

擇「executable (exe)」之後,單擊finish按鈕

然後插入物件(與建立程序內元件類似):

3)開啟選單insert|new atl object,在左邊的category中選擇objects,在右邊的

objects中選擇****** object,單擊「next」按鈕

4)在names標籤中,short name欄填寫******02,不修改其他的屬性,單擊

「確定」按鈕。

加入介面方法:

5)在workspace的classview標籤中右擊「i******02」介面,從彈出的選單中選擇

「add method」,在彈出的視窗中,method name欄填寫getosversion,parameters

欄填寫[out, retval]bstr * bstrversion

修改類c******02的函式stdmethodimp c******02::getosversion(bstr *bstrversion)如下:

// ******02.cpp : implementation of c******02

#include "stdafx.h"

#include "step02.h"

#include "******02.h"

// 加入comutil支援

#include

#pragma comment( lib, "comsupp.lib" )

/// c******02

// 取作業系統資訊

stdmethodimp c******02::getosversion(bstr *bstrversion)

}else

*bstrversion = _com_util::convertstringtobstr(szosversion);

return s_ok;

}編譯程式,至此我們建立了乙個程序外元件,下面我們編譯proxy/stub程式

6)進入「ms dos」狀態,找到step02的目錄,執行nmake step02ps.mk,將建立乙個

名為step02ps.dll動態連線庫。

新建如下檔案,並加入工程:

// client.cpp 檔案

#include

#include

// 加入comutil支援

#include

#pragma comment( lib, "comsupp.lib" )

// 包含com的定義檔案,以下兩個檔案從step02中拷貝出來

#include "..\step02\step02.h"

#include "..\step02\step02_i.c"

void main()

// 建立com物件

hr = cocreateinstance(clsid_******02, null, clsctx_all,

iid_i******02, (void **)&pi******02);

if(failed(hr))

// 獲得作業系統

hr = pi******02->getosversion(&bstros);

if(failed(hr))

char *pszos;

pszos = _com_util::convertbstrtostring(bstros);

printf("the os is %s\n", pszos);

// 釋放分配的記憶體

sysfreestring(bstros);

delete pszos;

pi******02->release();

couninitialize();

return ;

}三、說明

1)程序外元件的註冊使用:

step02.exe /regserver

登出使用:

step02.exe /unregserver

在windows 98下執行我們的client.exe,可以得到

the os is win95/98

在windows 2000下執行我們的client.exe,可以得到

the os is winnt

四、常見問題

如果沒出現上面的結果,提示為:

create com failed! hr=0x80040154

解決方法是,進入ms dos方式,找到step02\debug目錄,執行step02.exe /regserver

再試一次。

關於Wince程序外元件

windows ce提供以下幾種com base的應用 1.minimal com提供最基礎的com開發介面 api 每個com物件的建立大概需要10 20k。2.com提供了普通com和ole自動化實現的支援,只能實現自由執行緒模型 程序內的com物件。各個com物件建立大概需要100 200k。...

09 React 建立元件 使用元件

建立好乙個react應用程式後,我們就需要建立元件並且使用元件,其實react開發本身就是建立元件 使用元件的過程。下面來看一下示例 上圖中的html頁面上總共有三個元件 根元件 home元件和列表元件,下面就具體聊聊該怎麼建立這些元件以及如何使用它們。建立元件 1 我們修改一下預設建立的react...

使用Native API 建立程序

使用 native api 建立程序 最近幾個星期一直在研究這個題目。因為關於方面的資料比較多 可以看下面的參考文章 所以開始時以為很快就結束了。誰知道真正動起手來才發現有很多要考慮的地方,不過還好今天終於成功了,還是很高興的。寫下來,做個小結吧。紙上得來終覺淺 須知此事要躬行。我們一般是使用 cr...