软件多语言版的实现心得
来源:互联网 发布:怎样提升淘宝店信誉 编辑:程序博客网 时间:2024/06/05 12:00
前些开在做一个软件的多语言的问题,当时由于对这个不熟悉,而我走了一些弯路 。现在说一下我的心得:
多语言版有好几种实现有方法,我个人认为用DLL文件比较好(我是在VC++下开发软件),用它更快。
在软件中对要用的字串就在STRING TABLE中加入一个STRING ID 在你的软件中就直用LoadString(UINT ID)来得到你要的字符串。在之前我参考了EMULE(电螺)的源码,它这个多语言版的做的比较好。它的一些操作主要在文件I18n.cpp中做了。在CPreferences类中做了一些对语言的操作(实现部分在I18n.cpp中)。
用DLL文件作多语言版的原理是:
在CXXAPP类的初始函数中用LoadLibrary()函数载入包含字符串和ID的DLL文件
然后在要用的字符串的地方用resString.LoadString();得到字符串;在EMULE中用函数GetResString()得到字符串,它的实现是:
CString GetResString(UINT uStringID, WORD wLanguageID)
{
CString resString;
if (_hLangDLL)
resString.LoadString(_hLangDLL, uStringID, wLanguageID);
if (resString.IsEmpty())
resString.LoadString(GetModuleHandle(NULL), uStringID, LANGID_EN_US);
return resString;
}
CString GetResString(UINT uStringID)
{
CString resString;
if (_hLangDLL)
resString.LoadString(_hLangDLL, uStringID);
if (resString.IsEmpty())
resString.LoadString(GetModuleHandle(NULL), uStringID);
return resString;
}
其中:hLangDLL:为在用LoadLibrary()函数时得到的句柄;
uStringID:为你要得到字符串的ID
这样就很简单地做到了。
还有的方法是用非DLL的文件(如:INI文件)
用函数GetPrivateProfileString()来得到你要字符串 ;
- 软件多语言版的实现心得
- 【OPDA原创软件】SignSis v1.03 唯一的独立手机签名软件 多语言版
- 利用DLL制作多语言版软件
- 利用DLL制作多语言版软件
- 软件开发的心得
- 清华大学出版社 数据结构(C语言版)的实现
- 最小堆的实现(C 语言版)
- 数据结构C语言版单链表的实现
- 栈的实现(C语言版)
- 数据结构 二叉树的实现 c语言版
- sms4的简单实现(C语言版)
- 栈的数组实现(C语言版)
- 顺序表的实现(C语言版)
- 循环队列的实现(C语言版)
- 数据结构C语言版--单链表的基本功能实现
- skiplist的简单实现(c语言版)
- 谈软件测试的心得
- 软件架构设计的心得
- 以XML格式传输数据 (1)--Ajax学习笔记
- java构造方法的相关内容
- 成为一个起早者,控制你的睡眠模式
- 解决网页高度height="100%"不起作用的问题
- 如何遍历数据源中的表名称
- 软件多语言版的实现心得
- 原来iframe也可以runat="server"
- 用VC++开发数据库应用程序
- 智能ABC输入法的巧用
- 非MFC工程使用MFC库时的问题及解决办法
- XP快捷键与xp命令大全
- Oracle函数列表速查
- VC++下ODBC的编程
- 征战上海滩之上码头