MFC的module state

AfxGetStaticModuleState( ) 返回模块自身的module state数据块指针。

AFX_MANAGE_STATE(AfxGetStaticModuleState( ))在函数的最开始调用,用于在栈上构造一个AFX_MANAGE_STATE类,并把当前的模块状态指针保存在一个成员变量里面,然后把pModuleState设置成使用AfxGetStaticModuleState( ) 返回的指针;在这个实例对象的析构函数中,对象恢复以前保存的指针。

另一种方法:

// in DLL
void CDLL::ShowDlg(void)
{
       HINSTANCE save_hInstance = AfxGetResourceHandle();
       AfxSetResourceHandle(theApp.m_hInstance);
       CDialog dlg(IDD_DLL_DIALOG); //打开ID为2000的对话框
       dlg.DoModal();
       AfxSetResourceHandle(save_hInstance);    
}

// in EXE
void CEXE::OnButtonClick()
{
      HINSTANCE exe_hInstance = GetModuleHandle(NULL);
      HINSTANCE dll_hInstance = GetModuleHandle("SharedDll.dll");
      AfxSetResourceHandle(dll_hInstance); //切换状态
      ShowDlg();
      AfxSetResourceHandle(exe_hInstance); //恢复状态
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值