从 DLL 调用函数时 MFC 断言错误

MFC Assertion error when calling function from DLL

我正在从 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)