.NET互操作[非托管→托管]

http://topic.csdn.net/t/20050902/16/4246248.html

如何生成可从   COM   客户端调用的   .NET   COM   服务器  
  本节解释如何生成和安装将从   COM   应用 程序 使用的托管代码。生成过程包括以下步骤:    
   
  编写和编译托管代码。    
  使用   tlbexp.exe   实用工具为程序集生成类型库。    
  安装和注册程序集。    
  编写和编译引用程序集中类型的   COM   代码。    
  编写和编译托管代码  
  在开始生成将从   COM   使用的程序集之前,重要的是要了解公共 语言 运行库的互操作性服务的限制。请参见互操作性入门,以获得关于这些限制的确切内容的详细信息。  
  如果您的托管程序集打算用来在几个应用程序之间进行共享,那么请确保该程序集有一个强名称,以便能将其安装到全局程序集缓存中(请参见如何创建具有强名称的程序集)。如果程序集没有强名称,则它只能用于单个应用程序。    
   
  编写完托管代码后,编译 过程 就与其他任何托管代码的编译过程一样了。    
   
   
  生成类型库  
  大多数非托管应用程序的开发工具都要求先有一个类型库,然后您才能引用外部类型。可使用   tlbexp.exe   从程序集生成类型库,tlbexp.exe   将生成一个   .tlb   文件,非托管开发工具此后即可引用该文件。    
  tlbexp   TestServer.dll    
   
  例如,使用   Visual   Basic   6.0   可以从“项目/引用”对话框来引用   .tlb   文件。在   Visual   C++   6.0   中,可以使用   #import   语句将类型定义从类型库直接导入到   C++。一旦向项目添加了对类型库的引用,就可从非托管代码引用在该库中定义的类型。  
   
   
  安装和注册程序集  
  为了从非托管代码真正创建托管类型,需要在全局程序集缓存   (GAC)   中安装该程序集,并将其注册以便从   COM   使用。    
  可使用   gacutil.exe   实用工具在全局程序集缓存中安装程序集。可使用   /u   选项来卸载程序集。    
   
  gacutil   /i   TestServer.dll    
   
  如果程序集要由单个应用程序专用,则可将其直接复制到该应用程序目录中(而不是将该程序集安装在   GAC   中)。专用程序集不需要强名称,但是必须将其注册以便从   COM   使用。    
  可使用   regasm.exe   实用工具来注册程序集。可使用   /u   选项来卸载程序集。    
   
  regasm   TestServer.dll    
   
   
  编写和编译非托管代码  
  程序集一旦完成注册并正确安装后,就可从   COM   使用程序集中定义的类型,就像使用 正常 的   COM   类型一样。例如,可通过调用   CoCreateInstance   API,或者通过从   Visual   Basic   或脚本语言调用   CreateObject   或   GetObject   来创建新对象。请参见本节余下的示例以获得具体的编码细节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值