簡體   English   中英

在VB6應用程序中使用.NET dll

[英]Consuming .NET dll in VB6 application

我在c#.net中寫了一個dll,它在應用程序中調用另一個第三方.NET dll。 當我用c#.NET編寫的控制台應用程序測試它時,這也很好,使用下面的代碼:

 Assembly u = Assembly.LoadFrom(dllLocation);
 Type t = u.GetType("MyLIB.CLass");
 MethodInfo m = t.GetMethod("Method");
 object[] myparam = new object[1];
 myparam[0] = fileLocation;
 result = (string)m.Invoke(null, myparam);

請注意,有些文件是在最初加載dll的位置加載的,使用:

  string path = Assembly.GetExecutingAssembly().Location;
  path = Path.GetDirectoryName(path);

但問題是,當我嘗試使用VB6調用它時,我收到一個錯誤,它無法加載第三方DLL。 請幫忙,因為我似乎不知道發生了什么。

我想給你更多的細節,以便.NET Assembly暴露給COM

你需要生成tbl - type library

使用RegAsm /tlb: MyLIB.tlb MyLIB.dll

有一些指南可以向COM公開.NET類型,並確保您能夠應對這種情況。 例如聲明ComVisibleAttribute ,要求公共默認構造函數對COM可見,例如

您可以在如何從Visual Basic 6.0中調用Visual Basic .NET或Visual Basic 2005程序集中引用它

您需要在程序集上指定ComVisibleAttribute才能從VB6調用它。

暫無
暫無

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

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