当COM函数没有返回时,我收到0xC0000005异常(0xC0000005:访问冲突读取位置0x00000004。)。这是一个非常优秀的案例,但它仍然需要在调用它的C ++代码中捕获。出于某种原因,这个例外并没有被“全部捕获”所捕获,我无法弄清楚原因。
这是有问题的代码:
try
{
p_rsFuncResult = (LPCTSTR)myPtr->myFunction(p_szFuncInput);
}
catch (std::exception& e)
{
LOG_FATAL << "Uncaught exception thrown in myFunction: " << e.what();
p_rsFuncResult = "";
}
我也尝试过使用'...',但这段代码仍然没有被击中。值得注意的是,当COM函数按预期返回时,一切都按预期工作。
任何人都可以对此提供任何见解吗?