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分了,稍后补!
谢谢
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分了,稍后补!
谢谢
...全文
相关推荐
VS2010 调用 VB6.0 activeX DLL源码
VS2010 调用 VB6.0 activeX DLL源码 有四种调用方式 均通过验证, 同时附有VS2010成功引用VB6的说明
osgEarth C++转换为ActiveX控件
本文主要介绍osgEarth C++程序如何转换为ActiveX控件。 1、创建win32dll应用程序,并添加osgEarth代码。 2、配置包含路径、库路径和链接库: D:\OSG_PATH\Osg3.4.0_SDK\lib;D:\OSG_PATH\OsgEarth2.8_SDK\lib; D:\OSG_PATH\Osg3.4.0_SDK\include;D:\OSG_PATH\OsgEa...
C#编写dll文件
C#编写的dll的一个实例,vs2013编写
C#+.NET中调用VB编写的DLL代码事例.doc
C#+.NET中调用VB编写的DLL代码事例.doc
C#用Activex实现Web客户端读取RFID功能的代码
由于要在Web项目中采用RFID读取功能,所以有必要开发Activex,一般情况下开发Activex都采用VC,VB等,但对这两块不是很熟悉,所以采用C#编写Activex的方式实现


