日期:2014-05-19  浏览次数:20834 次

请高手讲解一下C#开发 com的过程!
谢谢!

------解决方案--------------------
.net 不能开发真正意义上的com,只是封装
ms-help://MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconbuildingcomcomponentsforinteroperability.htm
------解决方案--------------------
lz: c++与c#写的动态库,最大不同在于:后者直接写成了类似com的组件,(不过它是CLR标准)所以我们在net引用动态库是,从来不需要添加头文件!!

所以,你要是net写的动态库能使非net开发环境使用,必须从net的CLR标准转换为windows平台能通用的com标准库,具体做法:(一个范例)

namespace TestEmailer
{
[interfaceType(ComInterfaceType.InterfaceIsDual)]
public interface ICSharp
{
void sendmailMethod();
}
[ClassInterface(ClassInterfaceType.AutoDual)]
class MailM2:ICSharp
{
public void sendmailMethod()
{
……………………
}
}
}

2、创建类型库:

tlbexp TestEmailer.dll

执行后将生成TestEmailer.tlb,用COM Object Viewer看看。