? vb.net亚博足球娱乐场注册--任意三数字加yabo.com直达官网之ASP、VB调用.NET编写的DLL (补充:附上源 亚博足球娱乐场注册,亚博娱乐全天彩,亚博官网赢钱不给
VB.net 2010 视频亚博足球娱乐场注册--任意三数字加yabo.com直达官网 VB.net 2010 视频亚博足球娱乐场注册--任意三数字加yabo.com直达官网 VB.net 2010 视频亚博足球娱乐场注册--任意三数字加yabo.com直达官网
SQL Server 2008 视频亚博足球娱乐场注册--任意三数字加yabo.com直达官网 c#入门经典亚博足球娱乐场注册--任意三数字加yabo.com直达官网 Visual Basic从门到精通视频亚博足球娱乐场注册--任意三数字加yabo.com直达官网
当前位置:
首页 > 编程开发 > VBnet >
  • vb.net亚博足球娱乐场注册--任意三数字加yabo.com直达官网之ASP、VB调用.NET编写的DLL (补充:附上源

  • 2019-06-19 08:49 来源:未知
.NET中的DLL不是动态链接库,而是一个类型库。要把它作为COM调用需要进行CCW。下面是一个实例。
首先建立一个类库的项目comLib之后编写一个接口,COM要调用的对象实现这个接口,和一个实现这个接口的类,如果要在VBASP中用CreateObject创建对象需要有一个没有参数的构造函数?。代码如下:
?
using?System;
using?System.Windows.Forms;
?
namespace?comLib
{
????//定义接口,这点很重要 (此接口中的方法与COM组件中的方法一致)
????public?interface?iClass1
??? {
????????void?Say(string?word);
??? }
?
????public?class?Class1?:?iClass1
??? {
????????public?void?Say(string?word)
??????? {
????????????MessageBox.Show(word);
??????? }
??? }
}
?
然后运行运行Visual Studio 2005 .net?命令提示符,执行sn –k comLib.snk,生成一个SNK签名文件comLib.snk
?
??????为了使类型在COM中可见需要在AssemblyInfo.cs文件中设置这么一项[assembly:?ComVisible(true)]。在些文件中添加一项[assembly:?AssemblyKeyFile("文件路径\\comLib.snk")]
??????
???????在解决方案资源管理器中选择工程->单击右键->选择属性”->选择生成选项卡->COM Interop注册选中,这样项目造成时就会自动注册COM组件。
?
???????生成项目后,就可以进行COM调用了。这里以VB为例,新建一个EXE工程,添加对comLib.tlb的引用,些文件在bin目录下。然后使用下面的代码调用
??????
Option Explicit
?
Private Sub Form_Load()
??? Dim ic As iClass1
??? Set ic = New Class1
??? ic.Say "Hello Jerry!"
???
??? 'ASP中要用这种方式
??? Dim a
??? Set a = CreateObject("comLib.Class1")
?
End Sub
???????运行工程后就会出现个消息框。说明调用成功。
?
???????上面的COM注册是自动注册但有些时候要手动注册,比如你做的类型库要在别的计算机上使用,耍那台计算机没有Visual Studio 2005。手动注册有以下几个步骤:
?
(1)?使用regasm工具对程序集进行注册,运行Visual Studio 2003 .net?命令提示,执行regasm comLib.dll /tlb:comLib.tlb??????????
???????(2)?
之后使用gacutil工具将DLL程序集安装到全局程序集缓存中,也是先运行Visual Studio 2003 .net?命令提示,再执行gacutil /i comLib.dll

?
附上源文件下载:ClsIn.rar
https://files-cdn.cnblogs.com/files/illele/ClsIn.rar
相关亚博足球娱乐场注册--任意三数字加yabo.com直达官网