我從未與COM合作過,而且我的任務是編寫使用某些第三方COM對象的應用程序。如果有人能指點我一些關於如何使用它們的好教程,我們將非常感激。更多的時候,似乎我沒有安裝活動模板庫。我在網上搜索,但無法弄清楚如何得到它。我在哪裏可以獲得活動模板庫?
回答
正如丹指出的,這些是與Visual Studio分發。
如果沒有的Visual Studio,則可以從微軟的Visual C的一個++獲得ATL庫可再發行組件包:
- 2005 SP1 (32-bit)
- 2005 SP1 (64-bit)
- 2005 (Itanium)
- 2008 SP1 (32-bit)
- 2008 SP1 (64-bit)
- 2008 SP1 (Itanium)
注意:標記爲2005的版本是版本8(atl80.dll),標記爲2008的版本是版本9(atl90.dll)。
這是微軟的Visual Studio(但不是Express Edition)
我認爲你必須擁有Visual Studio 2005或2008的副本(不表達),以獲得ATL的一部分。如果您安裝了其中一個,但您沒有ATL,請轉到「控制面板:添加/刪除程序」,然後執行「修改」安裝(使用驅動器中的程序CD或DVD),並確保盒子爲ATL被檢查。
至於教程:
我還沒有找到一個很好的一個網上。有使用ATL/COM幾個OK頁:
- The Active Template Library Makes Building Compact COM Objects a Joy由唐盒( COM的老牌大師)。這篇文章開始:「我愛 COM。COM是好的,就像一個好的比爾森啤酒 或麥爾,COM從來沒有讓人失望,在 事實上,我越看COM, 更多我喜歡它。 C++和C++不會分享我對 生活中更好的東西的讚賞。「儘管大師的 說教,而事實上,它現在是 12歲,這是一個相當不錯的 文章...
- 邁克鄧恩的優秀tutorial on COM CodeProject上。
- DevGuy's C++ COM Tips - 一種鏈接和建議的大雜燴。
- The COM Programmer's Cookbook - 這篇古老的文章(1995年)雖然年代久遠,並且描述了用C而不是C++實現COM對象(顯式的vtable!)
我有點生疏自己W/COM和ATL,但如果我沒記錯的話,你會在班想學,你會用最(特別是如果你正在使用別人的COM對象而不是自己實現的)是CComBSTR,CComPtr和CComVariant。此外,Visual C++中的#import語句使得更容易使用外部COM對象,它會從外部DLL或EXE爲您生成一個智能指針類。
如果您打算實施COM對象,我強烈建議您獲取ATL Internals(目前覆蓋ATL v8的新版本)。是的,它確實進入了部分的血腥細節,但即使作爲一本介紹書,它也寫得很好。
如果您以前從未使用過COM,那麼「經典」書籍Essential COM和Effective COM非常好,您可以從您最喜歡的舊書源中便宜地購買它們。如果你還沒有,你也想要非常熟悉RAII成語。
新聞組microsoft.public.vc.atl非常適合提出特定問題。 (儘管它們比StackOverflow更粗糙)
請注意:儘管ATL有很多小小的陷阱,但ATL的確幫助它變得更容易&沒有太多的膨脹。 「模擬動態綁定」技術(也稱爲CRTP)在C++世界中非常有用,不僅僅在ATL/COM的上下文中,特別是如果您正在開發一個可重用類庫,您希望在只有一個實例是子類或混入的情況下(例如CSpiffyFramework類,它提供了要重用的mixin功能,並且您有一個派生類,您希望包含該功能,並且它不是虛擬對象模型的一部分,因此您並不真正需要一個vtable)。
祝你好運!
我安裝了這個:http://www.microsoft.com/en-us/download/details.aspx?id=3138並得到了C++編譯器和我的buildserver上的所有東西,但沒有ATLMFC庫。 上面鏈接的redist軟件包就是這樣,可再分發的,不需要頭文件和包含文件。 經過大量搜索,我最終在服務器上安裝了vs2008,廢話。
這裏是如何使用ATL與VS快遞:
需要WDK 7.1.0:
https://www.microsoft.com/en-us/download/details.aspx?id=11800
下載Visual Studio速成版
獲取VS快遞C++不含微軟
從微軟
下載免費的Windows驅動程序工具包(7.1或更高版本)獲取WDK 7.1.0免費從微軟
您可以安裝與虛擬克隆驅動器的ISO文件或用7-ZIP解壓縮。
安裝WDK並選擇「構建環境」選項
這將安裝ATL和MFC頭和lib文件。 ATL是Windows上FireBreath的一項要求。確保安裝此默認位置,以便FireBreath可以找到它
對於VS快訊2010年
如果您正在使用FireBreath的舊版本,這個職位由scjohn可能對您有用。請注意,FireBreath 1.4 beta 1及更高版本不再需要這些步驟!
http://www.firebreath.org/display/documentation/Building+with+Visual+Studio+Express
[VS2010表達包括路徑]
C:\ WINDDK \ 7600.16385.1 \ INC \ atl71
[VS2010表達庫路徑]
C: \ WinDDK \ 7600.16385.1 \ lib \ ATL \ i386
- 1. 我在哪裏可以獲得模板網站?
- 2. 我可以在哪裏獲得comdef.h?
- 3. 我可以在哪裏獲得libxml2.2.dylib?
- 4. 我在哪裏可以獲得wlWriterEditableSmartContent?
- 5. 我在哪裏可以獲得nuget.exe 3.0+?
- 6. MVC5:我在哪裏可以獲得System.Web.Mvc.pdb?
- 7. 我在哪裏可以獲得wevutil?
- 8. 從哪裏可以獲得PKCS#11庫?
- 9. 我在哪裏可以獲得已編譯的HtmlAgilityPack庫?
- 10. 我在哪裏可以獲得運行Pyahk的Autohotkey.dll庫?
- 11. 我在哪裏可以獲得大型樣本TFS存儲庫?
- 12. 我在哪裏可以獲得Ubuntu的Yum知識庫列表?
- 13. 我在哪裏可以獲得VS 2005報表服務器項目模板?
- 14. 我在哪裏可以獲得有關iTunes的指導或模板?
- 15. 我在哪裏可以獲得asp.net身份的rtm控制器模板?
- 16. 我在哪裏可以獲得Android 2.2(API 8)模擬器?
- 17. MS Access可以在哪裏獲得DSN?
- 18. 我在哪裏可以找到VS 2012的DNN6模塊模板
- 19. resharper在哪裏存儲我的活動模板?
- 20. 我在哪裏可以得到glibc?
- 21. 我在哪裏可以得到Microsoft.Data.Objects
- 22. 我在哪裏可以得到nagoa + .inc
- 23. 我在哪裏可以得到JTAPI jar?
- 24. 我在哪裏可以得到FlexAntTasks.jar
- 25. 我在哪裏可以得到request_id?
- 26. 我在哪裏可以得到arpa/inet.h?
- 27. 我在哪裏可以得到System.Diagnostics.Trace.WriteLine
- 28. 我在哪裏可以得到Microsoft.DirectX.dll?
- 29. 我在哪裏可以得到Z3opt
- 30. 我在哪裏可以得到TypeScript 1.0.3?
2014年11月,微軟發佈了免費的「社區版」 Visual Studio 2013 Update 4,包括ATL和MFC。截至2016年1月,它們仍然是Visual Studio 2015社區版的一部分。 – Lumi 2016-01-13 17:38:45