zoukankan      html  css  js  c++  java
  • dll中创建非模式对话框的问题

     今天在dll的输出函数中用非模态对话框遇到一个错误,File : dlgcore.cpp,line : 173。经过追踪调试,发现在非模态对话的创建过程中,在查找资源的时候出了问题。
      HINSTANCE hInst = AfxFindResourceHandle(lpszResource, RT_DIALOG);
      HRSRC hResource = ::FindResource(hInst, lpszResource, RT_DIALOG);
      查到的资源句柄hResource为空,即没有查到这个资源。
      在函数AfxFindResourceHandle的调用过程中有这样一段
      // first check the main module state
      AFX_MODULE_STATE* pModuleState = AfxGetModuleState();
      if (!pModuleState->m_bSystem)
      {
        hInst = AfxGetResourceHandle();
        if (::FindResource(hInst, lpszName, lpszType) != NULL)
        return hInst;
      }
      函数AfxGetModuleState是取得当前模块的状态。哦,原来在输出函数的开头忘记更改当前模块状态为dll了,于是在函数开头加了个
      AFX_MANAGE_STATE(AfxGetStaticModuleState());
      就好了。
  • 相关阅读:
    类数组及其转换
    数组去重
    ios UIView
    ios 解决Wkwebview闪烁问题
    ios Https问题
    UUID
    JavaScript4
    JavaScript2
    JavaScript1
    UIScollView
  • 原文地址:https://www.cnblogs.com/kevinzhwl/p/3878915.html
Copyright © 2011-2022 走看看