C#调用ActiveX DLL

Crystalzhou Crystalzhou 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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分了,稍后补!
谢谢
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
Crystalzhou
C# 111,129 成员 642,539 内容