从c#调用vb6 dll

我一直试图从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 

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

这篇MSDN文章介绍了如何使用.Net应用程序中没有注册表的COM。

MarkJ提到的VB6 DLL是一个COM Dll,它们通常需要使用regsvr32进行注册才能使用它们。

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

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

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

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