注册 vb 编写的dll组件问题

theendname 2007-04-30 11:46:49
我现在用VB.net开发的组件(试过两个,生成类库项目和生成windows控件库),虽然能编译成dll文件,但是利用windows自带的注册工具regsvr32怎么也注册不了,报错说:“已加载 X.dll,但是没有找到 DllRegisterServer 输入点。无法注册这个文件。”即使已经安装了.net框架也不行。
我要在其他软件里调用这个控件,所以虽然在.net里可以使用我编的组件,但是不注册就无法在其他软件里调用它。
请问,怎么解决这个问题,难道.net里不能再编Windows通用组件了吗?
...全文
387 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
theendname 2007-04-30
  • 打赏
  • 举报
回复
那我需要怎么改呢?
jixingzhong 2007-04-30
  • 打赏
  • 举报
回复
不能注册。

不是一个类型的东东。
用 VB 生成组件可以通过注册使用
NoBlank 2007-04-30
  • 打赏
  • 举报
回复
项目属性可设置为自动注册,在生成的时候会自动注册。
或者用.net提供的工具regasm注册手工注册和注销。
theendname 2007-04-30
  • 打赏
  • 举报
回复
这个能注册吗?
liuguozhong 2007-04-30
  • 打赏
  • 举报
回复
你那生成的是.net类库,不属于COM
NoBlank 2007-04-30
  • 打赏
  • 举报
回复
做成安装包,连regasm一起打包,用安装脚本自动执行手工注册的命令,这样应该是可以的吧。

实在不行,做一个小程序自动调用regasm来注册。

我没做过,不知道假如目标机上没有安装过.net的话,是否需要其他.net支持库。

我用VB作的类库(有公开的com类),dll中用Dependency Walker观察,貌似没有导出任何api,仅调用了MSCOREE.DLL(.net的支持库?)中的_CorDllMain函数。
然后,对这个com,我在vc6中用导入类型库的方式调用成功。
0黄瓜0 2007-04-30
  • 打赏
  • 举报
回复
如果能自动注册,手工注册也应可行.
0黄瓜0 2007-04-30
  • 打赏
  • 举报
回复
VB忘了,但在VC中,你是要自己编写DllRegisterServer 函数并导出才能注册的. 不是只要生成DLL文件就符合com规范,检查你的设置和确认要不要自已编写DllRegisterServer 函数
theendname 2007-04-30
  • 打赏
  • 举报
回复
但是安装的时候你不能在生成一次吧!
我是要安装在别的机器上!
NoBlank 2007-04-30
  • 打赏
  • 举报
回复
我用VB.net做的类库项目(com interop)就是那么注册的

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧