繁体   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