winapi – Windows跳过特定于语言的资源
发布时间:2020-12-14 05:39:58 所属栏目:Windows 来源:网络整理
导读:参见英文答案 LoadString works only if I don’t have an English string table????????????????????????????????????3个 我正在玩Windows API,我正在尝试使用多语言资源来加载特定于语言的菜单和内容.但是,出于某种原因,如果有美国英语替代品,Windows绝对
参见英文答案 >
LoadString works only if I don’t have an English string table????????????????????????????????????3个
我正在玩Windows API,我正在尝试使用多语言资源来加载特定于语言的菜单和内容.但是,出于某种原因,如果有美国英语替代品,Windows绝对拒绝加载波斯尼亚语(拉丁语)资源.通过 FindResourceEx 加载资源.我在XP SP3上,波斯尼亚语(拉丁语)在我的区域设置中设置.
main.c中 #include <Windows.h> #include "resource.h" int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PTSTR pCmdLine,int nCmdShow) { TCHAR string[64]; /* Message box properly outputs "This is German (DE)." here. */ SetThreadLocale(MAKELCID(MAKELANGID(LANG_GERMAN,SUBLANG_GERMAN),SORT_DEFAULT)); LoadString(hInstance,TEST_STRING,string,sizeof(string)/sizeof(string[0])); MessageBox(NULL,TEXT("Message"),MB_OK); /* Message box outputs "This is English (US)." - WTF?! */ SetThreadLocale(MAKELCID(MAKELANGID(LANG_BOSNIAN,SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN),MB_OK); return 0; } resources.rc #include <windows.h> #include "resource.h" LANGUAGE LANG_ENGLISH,SUBLANG_ENGLISH_US STRINGTABLE { TEST_STRING "This is English (US)." } LANGUAGE LANG_GERMAN,SUBLANG_GERMAN STRINGTABLE { TEST_STRING "This is German (DE)." } LANGUAGE LANG_BOSNIAN,SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN STRINGTABLE { TEST_STRING "This is Bosnian (Latin)." } LANGUAGE LANG_FRENCH,SUBLANG_FRENCH STRINGTABLE { TEST_STRING "This is French (FR)." } RESOURCE.H #define TEST_STRING 40000 解决方法
LoadString中的语言选择机制(以及通常所有资源检索API)从Vista开始被破坏(因为在系统级别添加了MUI机制).
目前最好的做法是将每种语言存储在单独的资源中,并使用DLL的hInstance访问资源.你可以自己加载dll,或使用更新的MUI API来做到这一点(http://msdn.microsoft.com/library/dd319076%28VS.85%29.aspx) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 禁止运行注册表
- Windows – 如何找到我的CreateFont调用实际使用的字体?
- windows-server-2008-r2 – 重命名Exchange 2010 SP2服务器
- windows – 移动大量文件的最快方法?
- Windows – 64位操作系统上的32位应用程序
- 如何以编程方式刷新Windows资源管理器?
- windows-server-2003 – 是否可以使用taskmgr在该月的最后一
- windows-7 – 激活Windows 7:KMS与MAK
- windows-server-2008-r2 – 如何确定谁安装了程序?
- remote-desktop – 远程桌面事件ID 20499.没有明显的问题
推荐文章
站长推荐
- windows-server-2012 – 为什么10GbE卡无法与Win
- 在Windows上检测Java中的SHIFT键的问题
- active-directory – 使用AD主目录属性来映射主驱
- 在Windows上获取PILow而不是Pillow for Python 2
- windows-installer – 为什么枚举安装的MSI包这么
- 提取Windows文件属性(自定义属性)C#
- windbg – 如何从内存转储中提取DLL文件?
- windows – 将一个字节的数据附加到文件需要多少
- windows-server-2008-r2 – Windows RDC管理员用
- server-message-block – 有没有办法在OSX或Wind
热点阅读