本人做了一个dll,在头文件中做如下定义:
#define DLLEXPORT extern "C" _declspec( dllexport )    
DLLEXPORT void WINAPI OpenDlg(BOOL bOpen); 
在cpp中加入
void WINAPI OpenDlg(BOOL bOpen)
{ AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDlgComm dlg;
dlg.DoModal();
}
在def文件中加入 OpenDlg @1
另建一个test工程,将它加入到同一个项目中去,设置该test项目依赖于dll项目。在testDlg.cpp中调用方法test()
CTestDlg::test()
{
    OpenDlg();
}
设置active project为test项目,运行,出现如下错误信息:
Unhandled exception in test.exe(DLL.DLL):0XC0000005 :Access Violation
程序停在如下位置:
BOOL CWnd::InitControlContainer()
{
TRY
{
if (m_pCtrlCont == NULL)
m_pCtrlCont = afxOccManager->CreateContainer(this);
}
END_TRY
}