繁体   English   中英

64位平台上的COM

[英]COM on 64 Bit Platform

我正在使用带有C#的第三方COM库,所有在32位XP上都能正常工作。 我用tlbimp来创建包装器,添加一个引用所有的工作。 但是,当移植到64位Windows Server 2008的服务器环境时,我遇到了障碍。

当我右键单击并测试它时,下面的代码只能正常运行,即在VS环境中运行。 编译到控制台应用程序时代码不起作用,无论是在测试中还是从控制台应用程序调用,代码也无法在程序集中工作。 为了让它正常工作,我在管理员和32位命令窗口中运行 - 仍然没有任何分组器总是为空,并且没有抛出异常,表明GrpSvr.GrpCall是一个有效的Com库名称。

    string sMessage = "no grouper";
    GrpSvr.GrpCall grouper = Activator.CreateInstance(
        Type.GetTypeFromProgID("GrpSvr.GrpCall")) as GrpSvr.GrpCall;
    if (grouper != null)
        sMessage = grouper.GroupInit(@"C:\CmdGrp.txt", true, true);

    Console.WriteLine(sMessage);

尝试使用COM +作为主机,并将您的应用程序编译为64位。 有关详细信息,请参阅此链接

听起来第三方COM DLL只是32位。 您必须将应用程序配置为仅运行32位,而不是任何CPU。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM