簡體   English   中英

COM對象僅適用於VB.NET,不適用於C#

[英]COM object only works in VB.NET not C#

我有一個COM對象,可以在VB.NET中正常工作,但不能在C#中工作。 這兩個項目都是.NET 4控制台應用程序。

COM對象在C#中加載,但方法不返回任何值。 為什么在VB.NET中不能在C#中工作?

謝謝!

Sub Main()
    Dim server As New NoahVersionLib.Version

    Dim val As Int32

    server.GetNoahServerVersionMS(val)



End Sub


    static void Main(string[] args)
    {
        var server = new NoahVersionLib.Version();

        int val= 0;

        server.GetNoahServerVersionMS(ref val);
    }

val在C#版本中為0,但在VB.NET版本中為值。

更新:
我需要將[STAThread]放在C#的Main()中。 現在可以使用了。

我需要將[STAThread]放在C#的Main()中。 現在可以使用了。

您是否在C#中嘗試了以下方法?

static void Main(string[] args)    
{        
    NoahVersionLib.Version server = new NoahVersionLib.Version();        
    Int32 val= 0;        
    server.GetNoahServerVersionMS(ref val);    
}

這兩個版本之間的唯一區別是您使用的是var而不是聲明實際類型,從而允許編譯器潛在地推斷出錯誤的類型(不太可能,但肯定有可能); 並使用int代替Int32 據我所知,int == Int32,但是在COM的一些奇怪情況下,可能不是。

暫無
暫無

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

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