itsAnalysisDataTable.CreateEx( WS_EX_CLIENTEDGE, AfxRegisterWndClass( CS_DBLCLKS, LoadCursor( NULL, IDC_ARROW ), (HBRUSH)::GetStockObject( NULL_BRUSH ), NULL ), "AnalysiysTable", WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, dialogItemRect, this, IDC_ANALYSIS_DATA_TABLE );
这条线花了我两天的努力而没有解决方案。 itsAnalysisDataTable是一个自定义窗口控件,CWnd作为其盛大的盛大父级。该控件已成功用于其他步骤,而我们的代码中没有任何问题。 这个是一个CPropertyPage。
我遇到的问题是线路原因(每次都是这样)a MyProduct(x64)中0x76f7fd5c处的未处理异常.exe:0xC015000F:被激活的激活上下文不是最近激活的激活上下文。
异常也发生在32位中。我在Windows 7 x64,VS 2008上。
我已经尝试过:
调用堆栈:
ntdll.dll!0000000076f7fd5c()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
kernel32.dll!0000000076df42d3()
mfc90d.dll!AfxDeactivateActCtx(unsigned long dwFlags=0, unsigned __int64 ulCookie=2077018657900210161) Line 260 + 0x19 bytes C++
观察:
答案 0 :(得分:11)
在点击了很多这些后,我发现追踪根问题的简单方法是转到Debug - >例外并启用所有引发异常。然后你会发现有一些其他异常正在触发,被静默捕获,但是搞乱了激活上下文。修复第一个异常后,将不会发生激活上下文异常。
答案 1 :(得分:6)
原来我的是由于违规控制类中未初始化的成员。在构造函数中初始化变量修复了问题。所以我不必诉诸于AfxSetAmbientActCtx(FALSE)
答案 2 :(得分:3)
在app init期间调用AfxSetAmbientActCtx(FALSE)会抑制 例外。但我认为这是一个黑客攻击,除非我能证明这一点。
discussion on MS Connect 'MFC default exception handling causes problems with activation context'可能会帮助您证明黑客是微软的解决方案建议。
答案 3 :(得分:0)
有同样的问题。
在我的情况下,我正在从路径中读取文件,我不小心删除了该文件。放回文件解决了这个问题。
答案 4 :(得分:0)
在一个托管IE的程序中有一些神秘的崩溃以及几个ActiveX控件。
将之前的除法变为零(通过其中一个AX控件)最终导致此异常以及后续的访问冲突。