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