VB6 调用 .Net 的 DLL 提示 Automation error The system cannot find the file specified.

Flynn_Lu 2014-12-02 10:30:37
Hi,

我用 C#.Net 已经生成一个 DLL 给 VB6 使用,用了 32 位的 RegASM 注册一下 MyDLL.dll 后,用生成出来的 .tlb 文件放到 VB6 工程中引用,而 VB6 也可引用成功,并成功在代码中使用到这个 DLL 里面的类与方法。

但是,当运行的时候,提示出错:
Automation error
The system cannot find the file specified.

Run-time error '-2147024894 (80070002)'

调试定位在Set MyTestClass = New MyDLL.TestClass (运行到这一行时出错: )
...全文
662 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq772326458 2018-12-25
  • 打赏
  • 举报
回复
少了一步注册
Flynn_Lu 2014-12-16
  • 打赏
  • 举报
回复
安装过了,.NET环境是肯定有的
楚狂歌 2014-12-05
  • 打赏
  • 举报
回复
安装了相应的.NET版本么
global_biz 2014-12-04
  • 打赏
  • 举报
回复
Automation error The system cannot find the file specified. 如果是这行出错提示的话,表示在 VB 里面调用找不到 DLL,我之前遇到过在 VB6 的开发工具里面直接点运行或调试,都会出现这个提示, 解决方法是: 你要先将 VB6 的工程编绎成一个可执行文件,比如: Test.exe 然后,再将 Test.exe 与那个 DLL 放在同一个目录,最后,再双击运行 Test.exe 就可以成功调用。 也就是说,不要通过 VB6 的开发工具来直接运行。
Flynn_Lu 2014-12-04
  • 打赏
  • 举报
回复
Hi global_biz, 因为是从别人那边得到的dll,由于种种原因无法确定是C#.NET还是VB.NET,用RegAsm注册,在VB6中引用成功,但是运行的时候总是报 Run-time error '-2147024894 (80070002)' Automation error The system cannot find the file specified. 调试定位在Set MyTestClass = New MyDLL.TestClass 请帮忙看一下,给点思路,谢谢!
global_biz 2014-12-04
  • 打赏
  • 举报
回复
你可以试下用一些可以查看当前正在运行程序的运行环境的工具,看下用 EXE 与 VB6 的运行有些什么差别。 我之前的用 EXE 搞定后就没看,如果你找到原因,可以发上来让大家参考一下。
Flynn_Lu 2014-12-04
  • 打赏
  • 举报
回复
谢谢global_biz,生成exe的方法果然有效,但是我还是需要调试模式做开发的,生成exe的方法不是很方便,有没有其他方法呢?我需要去研究一下生成exe和开发工具运行到底有什么区别,造成这种情况的根本原因我还不知道。
Flynn_Lu 2014-12-04
  • 打赏
  • 举报
回复
谢谢global_biz,生成exe的方法果然有效,但是我还是需要调试模式做开发的,生成exe的方法不是很方便,有没有其他方法呢?我需要去研究一下生成exe和开发工具运行到底有什么区别,造成这种情况的根本原因我还不知道。
Flynn_Lu 2014-12-04
  • 打赏
  • 举报
回复
谢谢global_biz,生成exe的方法果然有效,但是我还是需要调试模式做开发的,生成exe的方法不是很方便,有没有其他方法呢?我需要去研究一下生成exe和开发工具运行到底有什么区别,造成这种情况的根本原因我还不知道。
Flynn_Lu 2014-12-02
  • 打赏
  • 举报
回复
好心人,帮帮忙吧,多谢了

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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