[英]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.