2015-05-04 77 views
0

我想寫一個簡單的COM/ATL DLL鏈接http://www.codeproject.com/Articles/505791/Writing-Simple-COM-ATL-DLL-for-VS,但它沒有提到如何將一個靜態方法添加到ATL對象。如何將一個靜態方法添加到ATL對象中?

我可以添加一個靜態方法到ATL對象嗎?

謝謝,最好的問候!

+0

ATL C++類的靜態方法 - 就像任何其他C++類一樣。靜態方法到COM類或COM接口 - 那些沒有靜態方法。 –

+0

靜態C++方法不能通過接口公開,所以在客戶端代碼中不可用。 C++中的接口方法需要用* virtual *關鍵字來模擬,這與靜態方法相反。您可以將靜態方法添加到ATL類,只需使用文本編輯器即可。請注意,您可以在IDL中使用[appobject]屬性,某些運行時環境(如VB6和VBA)支持此屬性。 –

+0

@HansPassant - 感謝您的解釋。我知道了。 –

回答

0

當您在ATL類上使用類嚮導時,您只能選擇將方法添加到COM接口。當你想添加一些不在COM接口中的東西時,你必須手動修改類。

所以,你只需要在頭文件中添加靜態方法和文本編輯器,當然你必須在.cpp文件中添加實現。

+0

謝謝你的回答! –