VB.net开发的com手动注册的方法

来源:互联网 发布:宜兴紫砂淘宝客服招聘 编辑:程序博客网 时间:2024/05/06 02:33

我用vb.net 开发的com. 在本机调用没有问题。
但是我把dll放到另一个机器中,然后进行了注册
regasm aa.dll /tlb:aa.tlb
也成功了。
在vb中添加因用也没有问题。
在对象管理器中也能看到。
但是在程序中调用的时候出错。

代码:

dim a as new aa.my
msgbox a.msg

错误为:
实时错误 '-2147024894 (80070002) :
自动化错误

错误的发生在
msgbox a.msg  

感觉非常奇怪,因为我的组件没有强名称,所以,以为是目录的问题。便把调用程序和dll拷贝到同一个目录下,按照上面的方式注册,结果还是一样的不行。

最后发现,在注册的时候需要指定一个参数。CodeBase

代码如下:

regasm northsnow.dll /tlb:northsnow.tlb /codebase

放到vbs中的代码就是:

set ws=createobject("wscript.shell")
ws.run "regasm northsnow.dll /tlb:northsnow.tlb /codebase"

也就是说,如果要注册的.net程序集没有强名称,则在用regasm注册的时候须指定 CodeBase.

原创粉丝点击