我以前从未使用过COM,而且我的任务是编写一个使用某些第三方COM对象的应用程序。如果有人能指出一些关于如何使用它们的好教程,我将不胜感激。更直接的是,我似乎没有安装活动模板库。我在线搜索但无法弄清楚如何获得它。
答案 0 :(得分:4)
它是Microsoft Visual Studio的一部分(但不是Express Edition。)
答案 1 :(得分:3)
我认为您必须拥有Visual Studio 2005或2008(不是Express)的副本才能获得ATL。如果您安装了其中一个,但没有ATL,请转到“控制面板:添加/删除程序”并执行“修改”安装(程序CD或DVD在驱动器中)并确保该框检查ATL。
答案 2 :(得分:3)
正如Dan指出的那样,这些是随Visual Studio一起发布的。
如果您没有Visual Studio,则可以从其中一个Microsoft Visual C ++ Redistributable软件包中获取ATL库:
注意:标记为2005的是版本8(atl80.dll),标记为2008的是版本9(atl90.dll)。
答案 3 :(得分:2)
至于教程:
我在网上找不到一个非常好的。使用ATL / COM时有几个OK页面:
如果您要实现COM对象,我强烈建议您获取ATL Internals的副本(现在有一个更新的版本,涵盖了ATL v8)。是的它确实在部分中进入了一些血腥的细节,但即使作为一本介绍书,它也写得很好。
如果你之前从未使用过COM,那么“经典”书籍Essential COM和Effective COM非常好,你可以从你最喜欢的旧书来源中得到它们。如果你还没有,你也会想要非常熟悉RAII成语。
新闻组microsoft.public.vc.atl非常适合提出特定问题。 (但他们在那里比在StackOverflow上更粗暴)
注意:COM有很多小问题,尽管ATL确实帮助它变得更容易和更容易没有太大的膨胀。 “模拟动态绑定”技术({3}}在C ++世界中非常有用,不仅仅是在ATL / COM的上下文中,尤其是如果您正在开发一个可重用类库,您希望在其中进行子类化或混合一次只存在一个实例(例如,提供mixin功能的类CSpiffyFramework,您想要重复使用很多,并且您有一个想要包含该功能的派生类,并且它不是虚拟对象模型的一部分,所以你不需要vtable)。
祝你好运!答案 4 :(得分:0)
我安装了这个:http://www.microsoft.com/en-us/download/details.aspx?id=3138并且在我的构建服务器上获得了C ++编译器和所有东西,但是没有ATLMFC库。 上面链接的redist包只是可再发行组件,而不是所需的头文件和包含文件。 经过大量的搜索,我最终在服务器上安装了vs2008,废话。
答案 5 :(得分:-1)
这里是如何使用atl和vs express:
你需要WDK 7.1.0:
https://www.microsoft.com/en-us/download/details.aspx?id=11800
下载Visual Studio Express Edition
从Microsoft免费获取VS Express C ++
从Microsoft下载免费提供的Windows驱动程序工具包(7.1或更高版本)
从微软获取WDK 7.1.0
您可以使用虚拟克隆驱动器挂载ISO文件或使用7-zip解压缩。
安装WDK并选择" Build Environments"选项
这将安装ATL和MFC头文件和lib文件。 ATL是Windows上FireBreath的要求。确保将其安装在默认位置,以便FireBreath可以找到它
对于VS Express 2010
如果您使用的是旧版本的FireBreath,则scjohn发布的这篇文章可能对您有用。请注意,不再需要FireBreath 1.4 beta 1及更高版本的这些步骤!
http://www.firebreath.org/display/documentation/Building+with+Visual+Studio+Express
[vs2010 express include path]
C:\ WINDDK \ 7600.16385.1 \ INC \ atl71
[vs2010 express lib path]
C:\ WINDDK \ 7600.16385.1 \ lib中\ ATL \ i386的