加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 服务器 > 系统 > 正文

如何获取卫星资源DLL的模块句柄? (c视觉工作室)

发布时间:2021-01-24 03:34:10 所属栏目:系统 来源:网络整理
导读:我们已将所有字符串移动到MFC应用程序的资源(和附属DLL).现在主要语言被合并到EXE本身,所以当我调用LoadString()时,我可以传入exe的模块句柄. 但是,我需要使这个通用 – 如何以通用方式获取模块句柄并确保我在适当的时候从卫星DLL加载字符串?我们需要为当

我们已将所有字符串移动到MFC应用程序的资源(和附属DLL).现在主要语言被合并到EXE本身,所以当我调用LoadString()时,我可以传入exe的模块句柄.

但是,我需要使这个通用 – 如何以通用方式获取模块句柄并确保我在适当的时候从卫星DLL加载字符串?我们需要为当前加载的资源DLL获取适当的模块. (或如果是英语的exe)

:: LoadString()方法将句柄作为其第一个参数 – 我们只是使用当前exe的句柄.

我是否必须确定是否需要加载DLL,或者Windows是否自动为我执行此操作.从我读过的文档中不清楚.

This indicates that MFC does it automatically.
?那我怎么得到那个hmodule?

解决方法

使用LoadLibrary加载资源dll后,存储其HMODULE(由LoadLibrary返回)并将其传递给LoadString函数(以及其他资源函数).

顺便说一句,如果您专门使用资源DLL来存储资源(即它们中没有包含代码),您可以使用LOAD_LIBRARY_AS_DATAFILE选项使用LoadLibraryEx加载它们,从而加快加载速度并避免由于嵌入恶意代码而导致的可能漏洞利用资源dll(但在这种情况下为be careful with dialogs).

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读