我正在从 DLL 上下文中调用此函数,
void CmodguiApp::ReportStatusBarImageCount() {
CMainFrame *frm = nullptr;
auto app = AfxGetApp();
if (nullptr != app) {
frm = (CMainFrame*)app->GetMainWnd();
}
assert(frm);
frm->setStatusBarImageCount(L"Text");
}
一切正常。 frm
不是 nullptr。
然后,在下面描述的 setStatusBarImageCount
中,软件导致断言错误
有什么问题吗?
void CMainFrame::setStatusBarImageCount(const wchar_t *str) {
m_wndStatusBar.SetPaneText(m_wndStatusBar.CommandToIndex(ID_STATUSBAR_IMAGECOUNT), str);
}
此应用具有动态链接的 MFC。请让我强调一下,setStatusBarImageCount
函数是从 DLL 中调用的,而不是从主 MFC 应用程序中调用的。
最佳答案
这是因为我是从自定义线程 (https://msdn.microsoft.com/en-us/library/975t8ks0.aspx) 调用 MFC API
这应该使用自定义消息实现来完成,它是线程安全的 (https://msdn.microsoft.com/en-us/library/k35k2bfs.aspx)
关于c++ - 从 DLL 调用函数时 MFC 断言错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32635971/