2009-04-17 67 views
6

我從未與COM合作過,而且我的任務是編寫使用某些第三方COM對象的應用程序。如果有人能指點我一些關於如何使用它們的好教程,我們將非常感激。更多的時候,似乎我沒有安裝活動模板庫。我在網上搜索,但無法弄清楚如何得到它。我在哪裏可以獲得活動模板庫?

+1

2014年11月,微軟發佈了免費的「社區版」 Visual Studio 2013 Update 4,包括ATL和MFC。截至2016年1月,它們仍然是Visual Studio 2015社區版的一部分。 – Lumi 2016-01-13 17:38:45

回答

3

正如丹指出的,這些是與Visual Studio分發。

如果沒有的Visual Studio,則可以從微軟的Visual C的一個++獲得ATL庫可再發行組件包:

注意:標記爲2005的版本是版本8(atl80.dll),標記爲2008的版本是版本9(atl90.dll)。

+1

這不會讓你的頭,讓你實際上可以寫ATL代碼,對吧? – jeffm 2009-04-18 04:03:29

+0

我從來沒有與ATL做過工作。我只是假定它是通過DLL調用完成的。 – Powerlord 2009-04-22 13:39:59

3

我認爲你必須擁有Visual Studio 2005或2008的副本(不表達),以獲得ATL的一部分。如果您安裝了其中一個,但您沒有ATL,請轉到「控制面板:添加/刪除程序」,然後執行「修改」安裝(使用驅動器中的程序CD或DVD),並確保盒子爲ATL被檢查。

2

至於教程

我還沒有找到一個很好的一個網上。有使用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 COMEffective COM非常好,您可以從您最喜歡的舊書源中便宜地購買它們。如果你還沒有,你也想要非常熟悉RAII成語。

新聞組microsoft.public.vc.atl非常適合提出特定問題。 (儘管它們比StackOverflow更粗糙)

請注意:儘管ATL有很多小小的陷阱,但ATL的確幫助它變得更容易&沒有太多的膨脹。 「模擬動態綁定」技術(也稱爲CRTP)在C++世界中非常有用,不僅僅在ATL/COM的上下文中,特別是如果您正在開發一個可重用類庫,您希望在只有一個實例是子類或混入的情況下(例如CSpiffyFramework類,它提供了要重用的mixin功能,並且您有一個派生類,您希望包含該功能,並且它不是虛擬對象模型的一部分,因此您並不真正需要一個vtable)。

祝你好運!

0

我安裝了這個:http://www.microsoft.com/en-us/download/details.aspx?id=3138並得到了C++編譯器和我的buildserver上的所有東西,但沒有ATLMFC庫。 上面鏈接的redist軟件包就是這樣,可再分發的,不需要頭文件和包含文件。 經過大量搜索,我最終在服務器上安裝了vs2008,廢話。

-1

這裏是如何使用ATL與VS快遞:

需要WDK 7.1.0:

https://www.microsoft.com/en-us/download/details.aspx?id=11800

  1. 下載Visual Studio速成版

    獲取VS快遞C++不含微軟

  2. 從微軟

    下載免費的Windows驅動程序工具包(7.1或更高版本)

    獲取WDK 7.1.0免費從微軟

    您可以安裝與虛擬克隆驅動器的ISO文件或用7-ZIP解壓縮。

  3. 安裝WDK並選擇「構建環境」選項

    這將安裝ATL和MFC頭和lib文件。 ATL是Windows上FireBreath的一項要求。確保安裝此默認位置,以便FireBreath可以找到它

  4. 對於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

相關問題