wince 6.0 下MFC 模态非模态方式使用dll中的窗口

1.使用静态链接编译方式编译项目

2.在DLL窗口资源中

<2.1模态

void showdialog()
{
HINSTANCE save_hInstance = AfxGetResourceHandle();
AfxSetResourceHandle(AfxGetInstanceHandle());
CDialog dlg(IDD_DIALOG_INOUT_CONTROL); //打开ID为2000的对话框
dlg.DoModal();
AfxSetResourceHandle(save_hInstance);  
}

<2.2非模态

CDialog dlg(IDD_DIALOG_INOUT_CONTROL); //打开ID为2000的对话框

void showdialog()
{
HINSTANCE save_hInstance = AfxGetResourceHandle();
AfxSetResourceHandle(AfxGetInstanceHandle());
dlg.create();//伪代码

dlg.showwindow();
AfxSetResourceHandle(save_hInstance);  
}

3.

typedef void (*lpFun)(void);
HINSTANCE hDll; //DLL句柄 
hDll = LoadLibrary(L"DialogInOutControl.dll");
if (NULL==hDll)
{
AfxMessageBox(L"DLL加载失败");
}
lpFun addFun; //函数指针
lpFun pShowDlg = (lpFun)GetProcAddress(hDll,L"DialogShowMode");
if (NULL==pShowDlg)


{
AfxMessageBox(L"DLL中函数寻找失败"); 
}

HINSTANCE exe_hInstance = GetModuleHandle(NULL);
HINSTANCE dll_hInstance = GetModuleHandle(L"DialogInOutControl.dll");
AfxSetResourceHandle(dll_hInstance); //切换状态
pShowDlg();
AfxSetResourceHandle(exe_hInstance); //恢复状态


FreeLibrary(hDll);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值