在VC MFC DLL中创建了一个对话框,且在对话框中加载了ActiveX 控件,并设计一个函数显示对话框。一切就绪后,又设计了一个MFC EXE程序,通过调用函数,显示Dll中的对话框。但无法显示(2000能显示,98不能)
代码如下:
extern HWND SetupMode(HWND hWnd,char *ModuleName)
{
// get_DLL_resource();//网上资料保存资源句柄也不管用
// AFX_MANAGE_STATE(AfxGetStaticModuleState());加入这句编译出错
if(Dlg.Create(IDD_DIALOG1,CWnd::FromHandle(hWnd)))
{
Dlg.ShowWindow(SW_SHOW);
return Dlg.m_hWnd;
}
else
return NULL;
}
void get_DLL_resource(void)
{
/* this function changes the resource handle to that of the DLL */
//这个函数改变资源句柄使其指向DLL
if (resource_counter == 0)
{
save_hInstance = AfxGetResourceHandle();
AfxSetResourceHandle(GetModuleHandle(OneModuleDLL.hModule);
}
resource_counter++;
}
gz
因为有了
AFX_MANAGE_STATE(AfxGetStaticModuleState());
所以把
if(Dlg.Create(IDD_DIALOG1,CWnd::FromHandle(hWnd)))
改成
if(Dlg.Create(IDD_DIALOG1,NULL))
就可以了