如何获取卫星资源DLL的模块句柄?(c ++ visual studio)

Tim*_*Tim 3 c++ string resources

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

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

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

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

这表明MFC会自动执行此操作.那我怎么得到那个hmodule?

Mat*_*lia 5

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

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