我正在使用C#与第三方COM库,32位XP上一切正常。我使用tlbimp创建包装器并添加引用也没有问题。但是,当移植到我们的服务器环境时,即64位Windows Server 2008时,我遇到了障碍。
在下面的代码中,只有右键单击并在VS环境中测试时才能正常运行。当编译为控制台应用程序时,代码不起作用,无论是在测试中还是从控制台应用程序中调用的程序集中都不起作用。为了让它工作,我以管理员身份运行并在32位命令窗口中运行 - 仍然没有任何作用,因为grouper始终为空,并且未引发任何异常,表明GrpSvr.GrpCall是一个有效的Com库名称。
在下面的代码中,只有右键单击并在VS环境中测试时才能正常运行。当编译为控制台应用程序时,代码不起作用,无论是在测试中还是从控制台应用程序中调用的程序集中都不起作用。为了让它工作,我以管理员身份运行并在32位命令窗口中运行 - 仍然没有任何作用,因为grouper始终为空,并且未引发任何异常,表明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);
GetTypeFromProgID
中得到了什么? - Gabe