您的位置:首页 > 编程语言 > C#

VC 调用C#写的COM组件注意事项

2013-10-23 14:53 218 查看
1、COM组件必须使用强名称,可以

(1)方法一:在VS命令行下用sn工具生成(用法 sn -k xxxx.snk),在AssemblyInfo.cs中添加

[assembly: AssemblyKeyFileAttribute("HtmlHelper4cpp.snk")]

[assembly: AssemblyKeyName("HtmlHelper4cpp.snk")]

(2)方法二:选中工程——(右键)属性——签名,生成

2、工程——右键属性——生成,选中“为COM互操作注册”;

工程——右键属性——应用程序——程序集信息,选中“使程序集COM可见”

3、生成目标平台应选x86,而非Any Cpu(本人解决方案和工程属性都修改了)。

否则在调用时会出现“0x80040154 没有注册类”的异常

4、VS命令行下使用regasm /tlb:xxxx.tlb xxxx.dll 注册,使用gacutil /i xxxx.dll加入全局缓存。

5、VC调用,通过#import "..\xxxx.tlb"引入库

使用前需CoInitialize(NULL); 和CoUninitialize();

假设命名空间为namespace1, 指针为ITest,实现类为TestService,则调用方式为

namespace1::ITestPtr pTest(__uuidof(namespace1::TestService)); 然后通过pTest调用相关方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: