C#调用ActiveX DLL
1、用VB6写了个dll Test.dll
2、C#程序A 引用Test.dll,同时生成了一个Interop.Test.dll
3、去掉Test.dll引用
4、动态调用 Test.dll
//取得当前路径
string dllPath = GetAssemblyPath();
//com注册 (难道在这注册不行吗)
System.Diagnostics.Process.Start("regsvr32.exe", " /s " + dllPath + "Test.dll");
Assembly ddvb = Assembly.LoadFrom(dllPath + "Interop.Test.dll");
//获取类型
Type ddtype = ddvb .GetType("Test.GoodVbClass");
//获取方法
MethodInfo method = ddtype .GetMethod("SayHello");
//生成对象
object o = Activator.CreateInstance(ddtype , null);
//调用方法
Object reslt = method.Invoke(o, new object[] { “ASS”});
在调试的时候,运行正常,可能是Test.dll也是在本机生成的原因
但是把生成的EXE和dll放到别的机器上就不行了,
“检索Com类工厂中CLSID胃{20……省略}的组建时失败,原因是出现以下错误:80040154”
只剩下10分了,稍后补!
谢谢