我可以在C ++中使用WRL库来代替ATL来编写COM组件吗?如果是的话,我是否可以在较旧的桌面Windows系统上使用它,如Windows XP?
我非常确定第一个问题的答案是肯定的,因为我在MSDN上找到了这个教程:
http://msdn.microsoft.com/en-us/library/jj822931.aspx
但是非Windows 8系统呢?
答案 0 :(得分:6)
嗯,确定你可以。您可以在纯C ++代码中编写COM服务器,而根本没有任何辅助类。如果你真的想要,你可以在C中写一个,尽管这在大多数司法管辖区都违反了“日内瓦程序员权利公约”。
可能不那么明显的是缺少。 WRL只是不容易编写服务器。或者保持它。你错过了什么:
<comutil.h>
。还有一大堆如果不值得一提的小东西,比如公寓,ActiveX,聚合,错误信息等等。当你需要它时,伤害非常糟糕。 WRL的一个可能的优点是,没有神秘的胶水,ATL有相当数量的它可以大大提高抽象水平。这是故意的,但必须要学习。当然,当你使用纯C ++时根本没有,虽然你必须自己写太多。
答案 1 :(得分:0)
是。您可以编写标准COM组件。 在文档中直接有sample。
否:这样的COM组件只能在Windows 8及更高版本上运行......