在DLL中启动模态对话框时的错误,请高手帮忙 -- 不胜感激
我以“Regular DLL using shared MFC DLL"属性创建了一个动态库MyDLL,在MyDLL中用ADO操作MySQL数据库,同时MyDLL也使用了几个COM DLL,MyDLL以Multithread DLL编译.问题是:
当我加载MyDLL(通过MyDLL.lib 和 MyDLL.h)时,在下面程序段的注释处发生断言错误:
CWinApp::CWinApp(LPCTSTR lpszAppName)
{
if (lpszAppName != NULL)
m_pszAppName = _tcsdup(lpszAppName);
else
m_pszAppName = NULL;
// initialize CWinThread state
AFX_MODULE_STATE* pModuleState = _AFX_CMDTARGET_GETSTATE();
AFX_MODULE_THREAD_STATE* pThreadState = pModuleState->m_thread;
ASSERT(AfxGetThread() == NULL); //此处断言错误
pThreadState->m_pCurrentWinThread = this;
ASSERT(AfxGetThread() == this);
m_hThread = ::GetCurrentThread();
m_nThreadID = ::GetCurrentThreadId();
// initialize CWinApp state
ASSERT(afxCurrentWinApp == NULL); //此处断言错误// only one CWinApp object please
pModuleState->m_pCurrentWinApp = this;
...
}
但是,Ignore后可以继续。程序启动后,我要通过DLL接口涵数启动一个定义在MyDLL中的模态对话框,代码如下:
CMyDlg dlg;
dlg.DoModal();
可是,没有任何现象,即对话框没有弹出,也没有错误出现。
哪位大侠帮忙出出主意,不胜感激!