静态库引用问题
我自己用VC6.0编写了一个基于MFC的静态库,需要在没有MFC的开发环境下调用,因此采用了User MFC in a Static Library的方式编译,编译后使用无MFC环境的开发工具来调用发现:在release环境下可以正常运行,但在debug模式下却无法正常运行,这样无法进行单步调试。后来使用VC6.0的MFC对话框应用程序中调用该静态库,用用程序同样采用User MFC in a Static Library的方式编译,在Release模式下可以运行,但是在debug调试模式下运行到
CDocument* CWinApp::OpenDocumentFile(LPCTSTR lpszFileName)
{
ASSERT(m_pDocManager != NULL);
return m_pDocManager->OpenDocumentFile(lpszFileName);
}
时报错,其中lpszFileName为空,pDocManager 为NULL。
然后我采用User MFC in a Share DLL的方式编译静态库,调用时选择User MFC in a Share DLL模式编译应用程序,运行正常。
最后我尝试将编写了一个动态库,同样按上面的方式调用,无论Debug模式还是Release模式都可以正常调用。
但我现在需要的是静态库,并且需要运行在Debug模式下,为什么会出现这样的情况?