方法一、
dll中代码.h
extern "C" __declspec(dllexport) int __stdcall ShowWinCX() ;
dll中代码.cpp
extern "C" __declspec(dllexport) int __stdcall ShowWinCX()
{
HINSTANCE save_hInstance = AfxGetResourceHandle();
//使用自身dll实例中的资源
HINSTANCE dll_hInstance = GetModuleHandle(L"dlgcontrol.dll");
AfxSetResourceHandle(dll_hInstance);
CDialog dlg(IDD_SAGEDLGCONTROL); //打开ID为2000的对话框
dlg.DoModal();
AfxSetResourceHandle(save_hInstance);
return TRUE;
}
方法二、
dll中代码.h
extern "C" __declspec(dllexport) int __stdcall ShowWinCX() ;
dll中代码.cpp
extern "C" __declspec(dllexport) int __stdcall ShowWinCX()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDialog dlg(IDD_SAGEDLGCONTROL);
dlg.DoModal();
return TRUE;
}
本文介绍在DLL中通过两种不同方式调用并显示一个对话框的方法。第一种方法涉及资源句柄的管理和对话框实例的创建;第二种方法简化了资源管理过程,直接创建并显示对话框。
4436

被折叠的 条评论
为什么被折叠?



