C# 正在尝试使用COM组件
我有一个COM组件。我在32位XP机器上使用regsvr32注册了它。现在,当我试图在控制台应用程序中从它实例化一个类时,应用程序只是终止,没有给出任何异常。有什么建议吗 COM dll是ABCServer.dll。失败的代码C# 正在尝试使用COM组件,c#,.net,visual-studio,com,C#,.net,Visual Studio,Com,我有一个COM组件。我在32位XP机器上使用regsvr32注册了它。现在,当我试图在控制台应用程序中从它实例化一个类时,应用程序只是终止,没有给出任何异常。有什么建议吗 COM dll是ABCServer.dll。失败的代码 try { ILookUp LP = new LookUp(); ABCServer Svr = LP.LookUpServer(hostname, port); } catch(Exception ex) {
try
{
ILookUp LP = new LookUp();
ABCServer Svr = LP.LookUpServer(hostname, port);
}
catch(Exception ex)
{
Console.WriteLine(ex.message);
}
控件从未到达第2行,当我在第1行单击F10进行调试时,应用程序只是终止COM代码可能会出于某种原因调用C/C++
abort()。由于COM服务器是进程中的,这会立即终止整个进程
< >注意C++异常不能通过COM边界(它们必须通过“代码> iSupPrimeStistabor信息< /代码>”显式地“封送”)。如果在COM DLL中引发异常,但COM DLL实现代码未正确捕获和处理该异常,则可能会导致调用abort()
如果您有COM DLL的调试信息,则可以尝试启用非托管代码调试(从项目属性的“调试”选项卡,或通过“附加到进程”对话框中的“选择”按钮),并单步进入本机COM代码以尝试和诊断根问题。是否尝试使用try..except
?请给我们看一些代码……为了更清晰,值得发布代码。您是否检查了事件日志中的任何错误?当您在调试器下运行它时,它是否也“只是终止”了?还是它确实产生了未处理的异常?@Marco他在C中工作#try execpt只是C/C++对吗?