我写了一个DLL,接口函数如下:
extern "C" __declspec(dllexport) BOOL ShowMyDlg()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
ListDlg dlg;
if(dlg.DoModal()==-1) return FALSE;
return TRUE;
}在对话框中通过按钮调用,代码如下:
void CUseDllDlgDlg::OnButton1()
{
HMODULE hmod;
hmod = ::LoadLibrary ("DllDlgTest.dll");
if(hmod)
{
FARPROC lpproc = GetProcAddress (hmod,"ShowMyDlg");
if(lpproc) lpproc();
FreeLibrary(hmod);
}
else MessageBox("Load Dll Error","Error",MB_OK|MB_ICONERROR);
}
可以调用,但我在单文档的菜单中调用时却出错,怎么办?这是什么原因造成的?
extern "C" __declspec(dllexport) BOOL ShowMyDlg()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
ListDlg dlg;
if(dlg.DoModal()==-1) return FALSE;
return TRUE;
}在对话框中通过按钮调用,代码如下:
void CUseDllDlgDlg::OnButton1()
{
HMODULE hmod;
hmod = ::LoadLibrary ("DllDlgTest.dll");
if(hmod)
{
FARPROC lpproc = GetProcAddress (hmod,"ShowMyDlg");
if(lpproc) lpproc();
FreeLibrary(hmod);
}
else MessageBox("Load Dll Error","Error",MB_OK|MB_ICONERROR);
}
可以调用,但我在单文档的菜单中调用时却出错,怎么办?这是什么原因造成的?
你看MFC每个版本的dll,在名字上都做了版本的区分。