2011-09-22 61 views
2

謀求更好的發展,我試圖讓我的DLL的COM標準,我想我只需要擴展/實現幾個接口,並完成工作,但現在我在一個十字路口,如何編寫COM DLL?

1)我應該學習MIDL?

2)我應該安裝ATL(我正在運行VC++ Express)嗎?

3)繼續閱讀C++教程(http://progtutorials.tripod.com/COM.htm)並希望我的Express版本太有限了?

回答

2

我有興趣將原生C++轉移到Android和Java,並且閱讀該庫需要公開靜態'C'樣式函數或實現COM。

Android是基於Linux的操作系統...它不支持DLL和COM。

所以不,你不能通過COM去。你需要學習如何使用JNI。

+0

我當時也在學習Winforms/C#/ C++ - CLI,並且必須與Java混淆。抱歉。 – John

2

1)是的。如果你要定義新的界面,你幾乎不得不這樣做。沒有MIDL是不可能的,但是學習基本的MIDL要困難得多。

2)是的,請做。它會隱藏大部分的鍋爐板代碼(這是繁瑣的編寫,並容易出錯)。

3)我會推薦Don Box的書Essential COM。這很棒。此外,該書的一個很好的伴侶是Martin Gudgin的Essential IDL

至於VC++ Express - 我從來沒有使用過它們。我想可以用它來做COM,但是有限的工具/庫支持。