我用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.DLLC#按钮中的程序如下:
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
请问是什么原因?
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.DLLC#按钮中的程序如下:
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
请问是什么原因?
regsvr32 TestDLLProject1.DLL
把那个dll注册一下看看
1.dll需要注册
2.路径不对,重新引用
3.缺少运行库文件
DLL是用VB6编写的,程序是用C#编写的,引用的VB6编写的DLL经过在另一台机器上调试,发现可能是路径的问题.
那怎么才能在原来的机器上用VS.NET编好才能在别的机器上使用呢?总不能别的机器都装VS.NET重新设置吧?