簡體   English   中英

從c#調用vb6 dll

[英]Calling vb6 dlls from c#

我一直試圖從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方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM