如何在主程序下调用DLL,显示一非模式对话框!!
如何在主程序下调用DLL,显示一非模式对话框!!?
我在dll中实现了显示模式对话框,可是改成显示非模式对话框就会出错,
下面是FaultCheck.dll中的外部函数:
extern "C" __declspec(dllexport) void Test()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
pDlg = new CDialog;
if (pDlg != NULL)
{
pDlg->Create(IDD_DIALOG1);
pDlg->ShowWindow(SW_SHOWNOACTIVATE);
}
}
exe主程序中如下调用:
void CTestDllDlg::OnButton2()
{
typedef void (FAR __cdecl *MYDLL)(void); //
HINSTANCE hinstDLL=NULL; //
hinstDLL=LoadLibrary(GetCurrentDir()+"FaultCheck.dll"); //
if (hinstDLL)
{
MYDLL proc;
proc=(MYDLL)GetProcAddress(hinstDLL,"Test");
if(proc==NULL) AfxMessageBox("can't find function");
else proc();
FreeLibrary(hinstDLL);
}
else
{
AfxMessageBox("FaultCheck.dll装载失败...");
}
}
编译运行时,DIALOG1可以显示,可是马上就windows就会报错!棘手中,请大侠赐教,分不够可再加!