仍然习惯了这个MFC云雀,我在这个特殊问题上遇到了困难。我正在更新一些遗留代码,以使用MFC功能包中提供的一些更精细的控件。
按照在线提供的更新旧MFC应用程序的示例,将基本应用程序类更改为CWinAppEx工作正常,但是当我将CFrameWnd更改为CFrameWndEx时,我收到来自mfc90d.dll某处的Debug Assert Failed错误消息! AFXGetRegPath。忽略此消息会导致大量0xC0000005:访问冲突错误。
如果有任何关于如何解决这个问题的建议,我将不胜感激。
干杯。
答案 0 :(得分:4)
MFC框架的源代码作为Visual Studio的一部分包含在内,因此应该安装在您的计算机上。通常,当框架触发调试断言时,您应该进入调试器,这将帮助您确定问题的确切原因。
查看源代码,我可以看到AFXGetRegPath
函数包含一些断言:
ENSURE(lpszPostFix != NULL);
ASSERT_VALID(pApp);
ENSURE(AfxGetApp()->m_pszRegistryKey != NULL);
ENSURE(AfxGetApp()->m_pszProfileName != NULL);
如果我不得不猜测我会说这是m_pszRegistryKey
检查失败,可能是因为您没有在应用类的SetRegistryKey
功能中调用InitInstance
。
我希望这有帮助!