我正在通過谷歌搜索有關Microsoft組件對象模型。只發現了幾個正常的文章,只有一步一步的例子,這是行不通的。是否有任何鏈接/參考/書籍/教程,你知道如何通過VS C++構建簡單的COM組件?任何答案或幫助,將不勝感激!通過C++(也許VS)組件對象模型
回答
COM現在通常被認爲是過時的技術。這並不是說沒有人還在使用它 - 有很多遺留系統仍在投入使用 - 但是現在很少有人找到像現在這樣的新手來接近它。
我不確定是否事情進展很大,但我的建議是Don Box's Essential COM和ATL Internals。
其實我最主要的建議是,以避免它,如果你能:-)
MSDN提供了一個教程在這裏建立COM與ATL: http://msdn.microsoft.com/en-us/library/599w5e7x(VS.71).aspx
它應該是不錯的馬特別爲開始。
如果你沒有真的很好理由學習COM,我建議進入.NET。 COM是一種傳統技術,仍然與我們同在,有時我們需要維護使用它的軟件或與之互操作。但我認爲,沒有充分的理由將其用於全新的開發。
某些COM弱點:
- 消息泵送
- 引用計數(循環引用引起的問題)
- DLL地獄
我讀的地方,.NET最初被稱爲COM 2.0內部(對不起,我找不到參考),但後來它已經發展成爲一個完整的平臺much more。它克服了COM的弱點,並提供了一個很好的類庫。
1.說「COM弱點」,而沒有說明這些對我來說似乎是fanboy-ism。 2.瀏覽器助手對象,對象鏈接和嵌入,外殼擴展等仍然需要COM。它不會很快消失。 –
嗨BillyONeal,我列出了一些實際存在的薄弱。我真的不是故意的是「一個變形金剛迷」,我不認爲這有可能是一個「.NET的變形金剛迷」,‘反對’另一個MS-技術,就是後來的前身。 –
- 1. 組件對象模型
- 2. 封裝vs通過大型C++對象中的指針返回
- 3. Javascript MVC:對象vs模型
- 4. Sharepoint對象模型vs WebServices
- 5. JSON對象VS彈簧模型對象
- 6. MATLAB通過值vs對象
- 7. VS 2008 C++對象數組
- 8. 模型對象C#
- 9. ManyToManyField通過對抽象模型
- 10. Rails通過AJAX刪除模型對象
- 11. 通過相對條件在模型中查找對象
- 12. Backbone.js:如何通過模型ID數組篩選對象集合?
- 13. Rails:通過參考模型對象的屬性排序模型對象
- 14. C#對象的類型VS對象類型
- 15. 組件對象模型查詢Interace
- 16. 組件對象模型教程?
- 17. 組件對象模型的未來
- 18. 每個對象的addEventHandler VS事件中的對象通過對象循環
- 19. Django模型組通過
- 20. 通過對象數組訪問對象
- 21. 通過對象的數組對象
- 22. Django模型對象過濾
- 23. C++對象模型轉換?
- 24. C#int.TryParse也許?
- 25. 通過Javascript MS Word對象模型:郵件合併
- 26. 如何使用組件對象模型在Visual C++ 2008
- 27. 迭代通過C++對象
- 28. 嘗試在組件零模型上設置模型對象
- 29. C++的問題,也許與類型
- 30. 演員模型vs面向對象模型
你會推薦什麼替代方案? (我問,因爲我是一個Java人,而不是.NET。) – duffymo
這取決於你的目標是什麼。總的來說,COM作爲一種技術已被.NET取代,成爲在Windows上構建基於組件的設計的首選工具。其他選項可能是較高端的Web服務(或RESTful服務),或者低端的原始套接字(可能使用異步IO框架,如Boost ASIO) – philsquared