关闭

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

标签: vb.netdllvb.net
3539人阅读 评论(5) 收藏 举报
分类:

我用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.

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:795212次
    • 积分:12716
    • 等级:
    • 排名:第1142名
    • 原创:334篇
    • 转载:65篇
    • 译文:0篇
    • 评论:355条
    文章分类
    最新评论