编写过程:
打开VS2010,选择 VB语言-选择类库-输入名称 zyyh (备注:此处绝对不允许输入中文,下面会说到这个)--点击确定
在class1上面点击右键,选择重命名,重命名为 tianxiasan(备注:此处也不允许输入中文,下面会说到这个)
复制粘贴以下代码。功能仅仅是用于测试,作用是传递进来两个参数,传出一个相加结果
Public Class tianxiasan
Public Function ceshi(ByVal 参数1 As Decimal, ByVal 参数2 As Decimal) As Decimal
Return 参数1 + 参数2
End Function
End Class





此处已经设置完毕了,点击主菜单上保存-然后生成项目,生成的zyyh.dll 在保存项目下的bin\Debug的文件夹下
下面部分是注册1:使用安装进行注册



完毕后 在计算机的 保存项目的文件夹下 会有个 安装包 我的是在 C:\Users\Administrator\Desktop\测试\zyyh\注册安装包\Debug打开安装包,一直安装到底 会在 C:\Program Files (x86)\Microsoft\注册安装包 这个文件夹下 有两个文件 zyyh.dll zyyh.tlb此处查看是否已经注册成功了的方法是 在开始菜单下 的搜索或者运行 输入 regedit 打开注册表注意 如果前面的 不是zyyh和tianxiasan 而是中文 那么就会导致这里会出现乱码,导致调用失败
底下是测试部分


然后运行测试 点击button 出现一个结果
‘睇下是代码段 是 意思是引用 已经注册的 zyyh.tianxiasan 传递进去 1,2 在以前编译的zyyh.dll 处理完毕后 返回结果 3Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim yinyong '创建一个变量
yinyong = CreateObject("zyyh.tianxiasan")
MsgBox(yinyong.ceshi(1, 2))
End Sub
End Class
下面一部分 是手动注册不是安装注册,会理解windows 运行原理1:首先 net编译的 com 必须要有 net支持 因为选择net 4.0首先要查看 net4.0安装位置 C:\Windows\Microsoft.NET\Framework\v4.0.30319 这个是我的 安装位置,我的系统是 win7 64位:2:说明 net 编写的com必须要使用 这个环境底下的 RegAsm.exe 注册 注册步骤如下 2.1:在开始菜单下 打开系统的cmd ,输入 C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm C:\Users\Administrator\Desktop\测试\zyyh\zyyh\bin\Debug\zyyh.dll /tlb:C:\Users\Administrator\Desktop\测试\zyyh\zyyh\bin\Debug\zyyh.tlb 此命令 意思是 使用 C:\Windows\Microsoft.NET\Framework\v4.0.30319\下的RegAsm.exe 注册 C:\Users\Administrator\Desktop\测试\zyyh\zyyh\bin\Debug\zyyh.dll 并且生成库 C:\Users\Administrator\Desktop\测试\zyyh\zyyh\bin\Debug\zyyh.tlb 2:.2:在开始菜单下 打开系统的regedit 在 相应位置 会看到 zyyh.tianxiasan 已经注册成功了(不会的 请看上面的 regedit 图片)
注册成功了,不代表能运行,此时运行不会报错,但是也不会出
现结果,原因是因为没有加入到系统缓存
下面步骤是将zyyh.dll加入系统缓存 此方法必须安装 VS2010 使用VS2010的命令行加入缓存 打开方法如下
输入 gacutil /i C:\Users\Administrator\Desktop\测试\zyyh\zyyh\bin\Debug\zyyh.dll
意思是 将 C:\Users\Administrator\Desktop\测试\zyyh\zyyh\bin\Debug\zyyh.dll 加载到缓存此处 会在 C:\Windows\Microsoft.NET\assembly\GAC_MSIL 底下 生成一个zyyh文件夹 里面放置了 一个4.0的文件夹(重命名会导致调用失败),这个文件夹下 就是zyyh.dll文件注意 如果没有前面的签名,会导致 加入缓存失败
再次测试就会成功啦
我用了四个小时才搞定,一个人学习太痛苦了,高手带领的话 只要1分钟搞定的事情,我自己一个人搞用了4个小时
特别说明的是:千万不要开放两个入口,就是不要写两个公开
类在里面 publice class 只允许有一个,如果非得要使用class
请标志这个类为 友元 Friend Class,否则哪里都不会出错,就
是运行不起来
我现在做的项目 就是使用这个做的,一点一滴 累的要死
vb的话在类库项目中增加一个com类不就可以了!比C#方便的多!图发布出来哦!
[此贴子已经被作者于2016/11/28 12:24:10编辑过]
图到底怎么发的啊 只有链接 我QQ空间不允许随便进入 我没办法
谁告诉我下怎么弄图 我会贴出完整的示例 包括金字塔调用的示例,不是链接 那个太繁琐了