-
vb.net教程之ASP、VB调用.NET编写的DLL (补充:附上源
.NET中的DLL不是动态链接库,而是一个类型库。要把它作为COM调用需要进行CCW。下面是一个实例。首先建立一个类库的项目comLib之后编写一个接口,COM要调用的对象实现这个接口,和一个实现这个接口的类,如果要在VB或ASP中用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 ExplicitPrivate Sub Form_Load()Dim ic As iClass1Set ic = New Class1ic.Say "Hello Jerry!"'在ASP中要用这种方式Dim aSet 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.rarhttps://files-cdn.cnblogs.com/files/illele/ClsIn.rar
栏目列表
最新更新
如何使用OS模块中的stat方法
Python os 模块
seek() 方法
python打开文件实例1
Python写入文件
什么是流?
文件操作如何进制逐行读取
Python相对路径
with创建临时运行环境
Python文件操作
.Net Standard(.Net Core)实现获取配置信息
Linux PXE + Kickstart 自动装机
Shell 编程 基础
Shell 编程 条件语句
CentOS8-网卡配置及详解
Linux中LVM逻辑卷管理
1.数码相框-相框框架分析(1)
Ubuntu armhf 版本国内源
Linux中raid磁盘阵列
搭建简易网站
access教程之Access简介
mysql 安装了最新版本8.x版本后的报错:
Mysql空间数据&空间索引(spatial)
如何远程连接SQL Server数据库的图文教程
复制SqlServer数据库的方法
搜索sql语句
sql中返回参数的值
sql中生成查询的模糊匹配字符串
数据定义功能
数据操作功能