我使用NATIVE c ++创建了一个COM对象 - COM对象和它的本机客户端都能很好地工作。
下一步是将COM对象实现为进程外COM服务器(由dllhost进程托管)。 我遵循标准的注册表更改过程(http://support.microsoft.com/kb/198891),并且客户端和COM服务器在dllhost.exe进程下开始正常工作。
但是,我可以看到主机服务器崩溃并且dllhost.exe弹出一条消息,指出错误217 - 没有其他详细信息。
知道如何调试COM基础架构?我可以使用的任何首选工具?
非常感谢, 奥弗答案 0 :(得分:1)
然而,我可以看到有时候 主机服务器崩溃了 dllhost.exe会弹出一条消息说明 错误217 - 没有其他内容详述。
我很好奇这里发生了什么,更详细一点 - dllhost进程是否真的崩溃(带有结构化异常)还是显示消息框然后死掉?
您应该能够在问题发生时或在任何时候提前附加任何调试器(Visual Studio或WinDBG)。
进入调试器并在问题发生时检查callstack。
如果是由于某种类型的竞争条件,在附加调试器时它可能不会浮出水面,所以我会在显示消息框时开始附加,并看看可以从那里收集哪些信息。
大概你的代码在callstack中;如果没有,你可能会缺少运气。
请注意,使用Microsoft符号总是有帮助的,通过公共符号服务器最简单,如本页底部所述: http://www.microsoft.com/whdc/devtools/debugging/debugstart.mspx