DLL中资源切换的两种方法

方法1

AFX_MANAGE_STATE(AfxGetAppModuleState());                // MFC扩展dll

AFX_MANAGE_STATE( AfxGetStaticModuleState());             // 常规Regular dll

方法2

HMODULE hDLL=GetModuleHandle("SourceChange.dll");

HINSTANCE hEXE=AfxGetResourceHandle();

AfxSetResourceHandle((HINSTANCE)hDLL);                          // 设定资源模块句柄,指定为DLL模块

...// 资源的加载

AfxSetResourceHandle(hEXE);                                                    // 切换到EXE资源

【注意1】

有些资源加载函数需要指定资源句柄,请注意使用AfxGetInstanceHandle()、AfxGetResourceHandle()的使用。如:LoadCursor()、LoadImage()等等。

【注意2】

GetModuleHandle()、AfxGetInstanceHandle()和CWinApp->m_hInstance的区别:

1.GetModuleHandle(LPCTSTR lpModuleName):If this parameter is NULL, GetModuleHandle returns a handle to the file used to create the calling process (.exe file). 如果参数为空,那么获取的就是调用这个DLL 的exe的句柄,也即application句柄,而不是DLL的句柄。如果要获得当前DLL的句柄,要传入DLL的名称即可。

2.AfxGetInstanceHandle():An HINSTANCE to the current instance of the application. If called from within a DLL linked with the USRDLL version of MFC, an HINSTANCE to the DLL is returned. 返回的是一个application的句柄,但是如果这个函数是从一个MFC的USRDLL版本DLL的内部被调用,那么返回的就是这个DLL的句柄。

3.CWinApp->m_hInstance:The m_hInstance data member is a handle to the current instance of the application running under Windows. This is returned by the global function AfxGetInstanceHandle. m_hInstance is a public variable of type HINSTANCE. 因为它是从AfxGetInstanceHandle()返回来获得的,所以跟AfxGetInstanceHandle()的返回值一样。

DLL中资源切换的两种方法相关推荐

  1. Maya中英切换的两种方法

    一种是系统变量法: 打开文件资源管理器 控制面板\系统和安全\系统,点击高级系统设置,点击高级,再点击环境变量 新建环境变量,变量名输入[MAYA_UI_LANGUAGE], 变量值输入[zh_CN] ...

  2. WPF程序将DLL嵌入到EXE的两种方法

    2019独角兽企业重金招聘Python工程师标准>>> WPF程序将DLL嵌入到EXE的两种方法 这一篇可以看作是<Visual Studio 版本转换工具WPF版开源了> ...

  3. 站长在线Python精讲:在Python中格式化字符串的两种方法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中格式化字符串的两种方法详解>.本知识点主要内容有:使用%操作符格式化字符串和使用format()方法格式化字 ...

  4. 在PowerPoint中插入视频的两种方法

    转载者: 怎么做ppt课件背景              来源: www.2ppt.cn 为追求更完美效果,在Powerpoint中通过shockwave Flash Object控件插入SWF格式动 ...

  5. html怎么样取jsp中的路径,jsp中获得路径的两种方法和获得url路径的方法(推荐)

    是解决相对路径的问题,可返回站点的根路径. //这样获得的是绝对路径 //这样获得的是相对路径 能够更有效的防治连接的失效. request.getContextPath()得到的是项目的名字,如果项 ...

  6. python自带的shell是什么-python中执行shell的两种方法总结

    一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...

  7. python右对齐格式化输出_Python中格式化输出的两种方法介绍

    本篇文章给大家带来的内容是关于Python中格式化输出的两种方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 方式一:使用占位符 % 常用占位符:% s (s = string ...

  8. python去重复排序_Python实现删除排序数组中重复项的两种方法示例

    本文实例讲述了Python实现删除排序数组中重复项的两种方法.分享给大家供大家参考,具体如下: 对于给定的有序数组nums,移除数组中存在的重复数字,确保每个数字只出现一次并返回新数组的长度 注意:不 ...

  9. 华为n3计算机在哪里,在华为nova3i中连接电脑的两种方法介绍

    大家知道怎么在华为nova3i中连接电脑吗?不知道没有关系,小编今天介绍在华为nova3i中连接电脑的两种方法,希望可以帮助到你哦. 在华为nova3i中连接电脑的两种方法介绍 方法一: 1.下载并且 ...

最新文章

  1. 样本不平衡不均衡数据处理
  2. 数组-在排序数组中查找数字(统计出现的次数)
  3. ctype_digit()函数
  4. python 关联表_python学习------9.13----约束、表之间的关联关系
  5. 遍历python字典的几种方法
  6. Linux 之二 Linux 多线程
  7. Zookeeper场景实践:(5)分布式通知/协调
  8. 山谷序列C语言,通达信 山谷独创 主升黑马主图源码
  9. Ruby与Google 2009编程之夏
  10. Matlab策略模式
  11. java 课后习题 随机数统计
  12. Linux安装Nessus
  13. linux 免sudo,linux 创建用户,免密sudo,ssh免密登录
  14. python统计字符串中字母个数字母无视大小写_python判断字符串是字母 数字 大小写(转载)...
  15. 关于Shell脚本执行python代码,出现No such file or directorython: can't open file的问题
  16. oracle11g基于bootstrap$中的ind$表损坏系列五
  17. 2.07 CISC与RISC
  18. 数据结构之寻找下标和相等的数字方阵
  19. js正则表达式及语法
  20. 面试官:IoC 和 DI 有什么区别?

热门文章

  1. 项目实战-使用PySpark处理文本多分类问题
  2. java中的final关键字(2013-10-11-163 写的日志迁移
  3. get和post方式请求数据,jsonp
  4. [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(2)
  5. as3.0横向渐变发光字
  6. SOFABoot 扩展点初体验 | SOFALab 实践系列
  7. stupid soso spider
  8. zookeeper配置与使用
  9. php课程 4-16 数组自定义函数(php数组-桶)
  10. jQuery 表单应用:全选/取消全选,表单验证,网页选项卡切换