今天创建COM组件的最佳方法是什么?

时间:2012-09-10 13:06:45

标签: c# c++ visual-c++ com atl

我想为我的宠物项目创建一个桌面COM对象。我对COM没有任何经验,快速搜索显示ATL会简化操作。我想知道今天是否有更好的方法来创建COM组件。从某种意义上来说,更好的锅炉板,使用C#而不是C ++以及您可能想到的任何其他东西。

4 个答案:

答案 0 :(得分:4)

如果在客户端计算机上部署或依赖.NET框架安装对您来说不是问题,那么C#比C ++容易得多(尽管您可能需要重新声明C#中的接口,IID等...使用P/Invoke)。如果减少依赖性是一个问题,那么使用ATL的C ++会更好。

答案 1 :(得分:2)

只需在C#中创建它并作为COM组件公开,请参阅本指南:

http://msdn.microsoft.com/en-us/library/zsfww439.aspx

答案 2 :(得分:1)

我考虑C ++ / ATL的唯一原因是我连接到任何C / C ++库。除了我不能想到使用C ++而不是C#的强有力的理由(假设你的技能水平相当于两者)。

答案 3 :(得分:-1)

我只能将C ++与Microsoft的ATL库结合使用。

我使用了一些用C ++编写的代码生成工具,帮助我摆脱了大量的样板代码。这个工具生成的代码产生了更多C ++友好的接口(比如在Visual Studio中#import类型库时在tlh / tli文件中生成的代码。我的代码生成器生成类似的代码,仅用于COM服务器。

如果您有兴趣,请发送邮件至网址de DerTopper。在主题行中添加类似“COM代码生成器”的内容,这样您就不会通过我的垃圾邮件过滤器了。

此致 斯图尔特