Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String MFC将如何加载字符串资源?_String_Mfc_Localization_Resources - Fatal编程技术网

String MFC将如何加载字符串资源?

String MFC将如何加载字符串资源?,string,mfc,localization,resources,String,Mfc,Localization,Resources,我刚刚在上读到关于MFC本地化的文章,有一个问题: 如果我创建一个名为MyApp.exe的应用程序,然后将德国本地化的资源DLL创建为MyAppDeu.DLL。MyApp.exe中有两个字符串资源,即string1和string2。我制作了string1的德语版本并将其放入MyAppDeu.dll中,但没有为string2制作德语版本 那么,在一个带有德语UI的系统中,当MyApp.exe启动时,MFC将对string1和string2执行什么操作 谢谢 Alan如果它的命名方式是MFC核心,则

我刚刚在上读到关于MFC本地化的文章,有一个问题:

如果我创建一个名为MyApp.exe的应用程序,然后将德国本地化的资源DLL创建为MyAppDeu.DLL。MyApp.exe中有两个字符串资源,即string1和string2。我制作了string1的德语版本并将其放入MyAppDeu.dll中,但没有为string2制作德语版本

那么,在一个带有德语UI的系统中,当MyApp.exe启动时,MFC将对string1和string2执行什么操作

谢谢


Alan

如果它的命名方式是MFC核心,则将使用该语言。 InitInstance调用名为LoadAppLangResourceDLL的函数。它用DEU、ENU搜索模块。。。根据当前系统语言或选定的MUI

因此,如果调用基类CWinApp::InitInstance,一切都完成了。我不知道这是什么MFC版本。据我所知,这是在VS-2008或VS-2005中引入的

详细说明:此InitInstance设置内部资源句柄。资源从通过AfxSetResourceHandle定义的一个或多个模块加载。有一个函数AfxGetResourceHandle在任何加载之前使用。。。函数被执行

您仍然有责任设置


因此,所有资源负载都被简单地重定向到另一个模块。这适用于每个MFC实例(DLL和EXE)。

当您尝试加载不存在的字符串时,它将崩溃。因此,实际上,在加载string2时,它将出现问题,因为已加载MyAppDEU.DLL,但其中不存在string2?是的。所有资源必须位于新的DLL中。我有一个特殊的程序,可以帮助我为本地化DLL定制和创建这样的RC文件。