首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在尝试使用COM组件

正在尝试使用COM组件
EN

Stack Overflow用户
提问于 2011-10-21 17:33:42
回答 1查看 132关注 0票数 1

我有一个COM组件。我在我的32位XP机器上使用regsvr32注册了它。现在,当我在控制台应用程序中尝试从它实例化一个类时,应用程序只是终止,没有给出任何异常。有什么建议吗?

COM dll为ABCServer.dll。失败的代码,

代码语言:javascript
复制
   try
   {
     ILookUp LP = new LookUp();
     ABCServer Svr = LP.LookUpServer(hostname, port);
   }
   catch(Exception ex)
   {
     Console.WriteLine(ex.message);
   }

控件永远不会到达第2行,而在调试时,当我在第1行单击F10时,应用程序只是终止

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-21 22:21:05

COM代码可能出于某种原因调用C/C++ abort() (或COM的实现语言中的任何等效项)。由于COM服务器处于进程中,因此会立即终止整个进程。

请注意,C++异常不能通过COM边界(它们必须通过ISupportErrorInfo显式“封送”)。如果在COM中引发了异常,但COM实现代码没有正确捕获和处理该异常,则可能会导致调用abort()

如果您有COM DLL的调试信息,可以尝试启用非托管代码调试(从项目属性的“调试”选项卡,或通过“附加到进程”对话框中的“选择”按钮),并单步执行本机COM代码以尝试诊断根本问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7847521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档