Calling vb6 dlls from c#

本文关键字:from dlls vb6 Calling | 更新日期: 2023-09-27 18:24:09

我一直试图在不使用注册表的情况下从C sharp应用程序调用vb6 dll。我想在使用dll时使用它的路径。我无法创建vb dll类的对象。请帮忙!到目前为止,我写的代码如下:

Assembly assem = Assembly.LoadFile("dll path");
Type classType = assem.GetType("classname");
MethodInfo method = classType.GetMethod("show"); //My methos is called show
method.Invoke(null,null); // I have to invoke the method using class object, which I am unable to create

Calling vb6 dlls from c#

VB6 DLL是COM DLL。通常,您会注册DLL(在注册表中),然后从.NET项目中添加对VB6 DLL的引用。

这篇MSDN文章提供了从.Net应用程序使用无注册表COM的演练。

MarkJ提到的VB6 dll是COM dll,通常需要使用regsvr32注册它们才能使用。

注册后,您可以像使用.NET dll一样添加对它的引用,即右键单击项目中的"引用",单击"添加引用",然后选择窗口上的"COM"选项卡并查找您的COM dll名称。

然后,您应该能够像使用.NET引用一样使用它
以下是如何使用Microsoft Excel的COM引用的示例
如何:使用COM Interop创建Excel电子表格

如果你特别想要后期绑定,那么你的dll仍然需要注册,但你没有手动添加引用,你可以使用Activator.CreateInstance()来获取COM对象的实例
使用后期绑定从C#调用COM组件

假设方法show在dll的导出表中,请尝试使用DllImportAttribute调用show方法。