如题,我相要调用显示一个dll中的对话框界面,采用显式加载dll的方式,
调用位置的代码如下:typedef void (WINAPI *TESTDLL)();
HINSTANCE hwnd;
hwnd = LoadLibrary(_T("test.DLL"));
if (hwnd == NULL) 
{
AfxMessageBox(_T("dll is not exist"));
}
TESTDLL lpproc = (TESTDLL) GetProcAddress(hwnd, "Show");
if (lpproc == (TESTDLL)NULL)
 {
AfxMessageBox(_T("function is not exit"));}
(*lpproc)();   //这样就调用了DLL中的Show函数
FreeLibrary(hwnd);Show()函数代码为:extern "C" __declspec(dllexport) void Show()

AFX_MANAGE_STATE(AfxGetStaticModuleState());   
CTestdlg dlg;
dlg.DoModal();
}这样写测试程序,测试结果很正确,在(*lpproc)(); 这行执行后才会显示所要显示的对话框界面.
但是我按照这样的方式同样调用项目中的dll中的对话框,函数执行完
hwnd = LoadLibrary(_T("test.DLL"));
这行代码后就会显示界面,不知道为何会出现这样的问题,坐等高手解释.....