微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vb.net编写并调用com元件

利用vb.net编写并调用com元件的过程:

1、建立ClassLibrary。

即建立一个类库。然后将认的普通class删掉,右键Item,选择ComClass,在这个类中需要引入.NET下的System.EnterpriseServices这个架构的支持方法是:Add Reference,然后选择.net下的这个架构。

然后再该类中Imports System.EnterpriseServices

Imports System.Runtime.InteropServices

公共的public class必须Inherits ServicedComponent

在类中还可以写其他方法

2、在编译类库牵,可以为类库设置一个强签名。然后新建一个密钥文件,这个文件自动加入到当前项目中来。

3、修改project下的AssemblyInfo.vb。

Imports System.EnterpriseServices '必须添加

在类最后添加

'加入如下:
<Assembly: ApplicationName("COMMTEST3")> 'COMMTEST3是其他项目访问该com的名字
<Assembly: ApplicationAccessControl(False)>
<Assembly: ApplicationActivation(Activationoption.Server)>


3、编译类。

编译完类后,打开.netFrameWork2.0的SDK,进入项目只对应的路径下的bin目录,制作两个.bat文件。利用命令将制作好的com元件打包。這兩個bat文件為:RegCom.bat和URegCom.bat。 RegCom.bat文件的內容為:regsvcs %1.dll gacutil /i %1.dll UnRegCom.bat文件的內容為: gacutil /u %1.dll regsvcs /u %1.dll 制作好這兩個bat文件后,就可以將project存放路徑bin下的由先前編譯產生的.dll文件經過bat文件的處理,而制作成com元件。方法為:打开.netFrameWork2.0的SDK,进入项目只对应的路径下的bin目录,輸入:RegCom.bat +.dll文件。這樣就可以產生com元件了

如果成功将com元件打包,可以在控制面板下的组件服务下找到该com元件。

将com元件制作好后,就可以在应用程序中使用该com元件了。使用com元件有两种方式:

(1),卸载方式

(2),非卸载方式,即reference先前包装好的dll文件。同时还需要reference .net下的System.EnterpriseServices这个服务。 這兩種方法的具體代碼為: Dim msgbuf As Object msgbuf = CreateObject("ClassLibrary1.comtest2") '非卸載的方式 Dim msgbuf2 As New ClassLibrary1.comtest2 '卸載的方式 需要reference System.Enterprise.Services這個com元件 Try msgbuf.commsgtest() msgbuf2.commsgtest() Catch ex As Exception Finally ' msgbuf.dispose() msgbuf2.dispose() '釋放com End Try "ClassLibrary1.comtest2"是指定名稱下的元件。

不管是使用哪种方式,最后都需要将com元件释放,可以使用dispose()

总结:使用com元件的好处是:可以实现动态引用。当有变化时,不需要整个项目都发生变化,只需要对指定的com进行修改

原文地址:https://www.jb51.cc/vb/261840.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐