?? ?? ? ?如果没有必要,我是真的不想在C#中玩COM组件,原因很多,其中一条是它的效率不高。
C#调用COM组件是很简单的事情,但C#中似乎不能直接引用C#写的COM组件(这可能真叫脱了裤子放屁)。
C#写的COM组件,绝大多数情况是给“旧时代的语言”用的,很不幸,我经常接触到这种“旧时代的语言”。
过程:
1.新建一个C#的类库工程(我没试过用C#生成EXE的COM服务)
2.写一个接口,定义COM组件对象方法:
说明:
1)如果需要对调用者可见,那么就需要加上[ComVisible(true)],但我不建议全局定义它(AssemblyInfo.cs)
2)GUID用VS中的工具生成
3)DispId可以自己随便写,但在C++响应COM事件的时候,可能会用到
4)OnWriteback是一个属性,主要用于接收VBS中的GetRef,因为VBS中某些情况下无法使用连接点来响应COM事件
3.再写一个接口,定义COM组件事件:
4.写一个类,实现COM组件对象
编译好之后,生成DLL,就是一个COM组件了。注意使用RegAsm注册的时候,要加/tlb参数
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!