本文介绍MFC和Windows字符串表的字符串资源在程序中如何使用。有代码示例。字符串表就像一个Excel表格一样,存放了所有你放置的字符串。在这个表中,每一条字符串,都对应着一个ID宏、一个ID数值以及字符串本身。字符串表的使用,可以大大提高本土化的便利性。因为在程序中,我们不直接使用写好的字符串,而是从这个字符串表加载字符串资源。所以,在后期要进行多语言版本转化时,只需要把字符串表中的字符串翻译一下,然后,重新编译。这样程序就是另外一种语言的了,非常的方便,因此这个过程中不需要对代码中的字符进行修改,非常省心省力。
方法/步骤
1
默认情况下,MFC建立一个工程后,已经建立了一个字符串表[String Table]资源。如下图:
2
然后,双击打开“String Table”,出现如下界面。这个字符串表就像EXCEL一样,直接编辑。
3
编辑完后,保存此文件即可。 下面就介绍如何在代码中使用字符串资源。
4
以上是MFC的实现,非常简单易用。CString的LoadString函数只需要一个字符串资源的ID值即可。LoadString的参数依次是:实例句柄,资源ID,字符串资源缓冲地址,字符串资源缓冲字节大小。
5
如果是自己的程序,那么实例句柄设置为空,如果是使用其他程序的资源,使用其他程序的进程实例句柄,这里就不讨论其他程序的。资源ID就是字符串表中的字符串对应的ID。缓冲地址是LPTSTR类型的,使用TCHAR数组即可。大小则设置为数组的大小,按照字节数计算。
6
如果函数执行成功,各低则返回得到的从字符串表中加载到缓冲的TCHAR字符个数,不王膨包括空字符。如果字符串脂海岔资源不存在则返回0.
7
为了让读者了解的更加清楚,知道CString内部的实现,我们来看看Windows API的实现方式:
注意事项
1
1. TCHAR是MFC中的一个通用字符串类型, _T('')是将通用字符串宏,不清楚的可以阅读《宽字符串与窄字符串的相互转换》。
2
2. 在LoadString和MessageBox前的::是作用域解析操作符。因此这里是在MFC环境下的,使用这个作用域解析操作符表示全局函数,即API函数,否则就是调用的MFC的函数。但是如果直接是Win32程序,则不需要这个作用域解析操作符。
上一篇:幻塔黑鸦冥镰武器详情介绍
下一篇:《哈利波特》里的人物有哪些