调试调用DLL成功,移植到别的机器上运行失败

nenu0 2010-04-16 11:43:53
我用VB写了个DLL,TestDLLProject1.DLL,里面的类程序如下:
  Public Function FncTestDLLForDotNet(instr As String) As Integer

  FncTestDLLForDotNet = 9

  End Function

  Public Function FncTestDLLForDotNet2(instr As String) As Integer

  FncTestDLLForDotNet2 = 99

  End Function

然后在C#中的解决方案资源管理器中引入这个DLL,在项目中生成了Interop.TestDLLProject1.DLL

C#按钮中的程序如下:
  TestDLLProject1.TestClass1 tc = new TestDLLProject1.TestClass1();

  string ss = "kkkk";

  int i = tc.FncTestDLLForDotNet(ref ss);

  int i2 = tc.FncTestDLLForDotNet2(ref ss);

  MessageBox.Show(i.ToString() + " " + i2.ToString());

在本机能调试成功。但是复制到另一台没有VB的机器上出现错误。

检索COM类工厂中CLSID为{41E0D4F5-2D8A……省略}的组件时失败,原因是出现以下错误:80040154
请问是什么原因?
...全文
172 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lpingz 2010-04-16
  • 打赏
  • 举报
回复
三个可能:
1.dll需要注册
2.路径不对,重新引用
3.缺少运行库文件
zsuswy 2010-04-16
  • 打赏
  • 举报
回复
是VB还是VB.net?
xrongzhen 2010-04-16
  • 打赏
  • 举报
回复
没有复制dll吧?

把那个dll移植到你的程序目录下,然后重新引用 在另一台电脑上应该就没问题了

v风雪山神庙v 2010-04-16
  • 打赏
  • 举报
回复
VB需要有运行库的
hapen_zhang 2010-04-16
  • 打赏
  • 举报
回复
运行
regsvr32 TestDLLProject1.DLL
把那个dll注册一下看看
zzxap 2010-04-16
  • 打赏
  • 举报
回复
是否缺少其它DLL或运行环境?
Justin-Liu 2010-04-16
  • 打赏
  • 举报
回复
那就是另一台机器没有你引用的东西被
nenu0 2010-04-16
  • 打赏
  • 举报
回复
那是注册Interop.TestDLLProject1.DLL还是TestDLLProject1.DLL?
DLL是用VB6编写的,程序是用C#编写的,引用的VB6编写的DLL

经过在另一台机器上调试,发现可能是路径的问题.
那怎么才能在原来的机器上用VS.NET编好才能在别的机器上使用呢?总不能别的机器都装VS.NET重新设置吧?
wuzhicheng5 2010-04-16
  • 打赏
  • 举报
回复
7楼正解!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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