1、字符串表就像一个Excel表格一样,存放了所有你放置的字符串。在这个表中,每一条字符串,都对应着一个ID宏、一个ID数值以及字符串本身。字符串表的使用,可以大大提高本土化的便利性。因为在程序中,我们不直接使用写好的字符串,而是从这个字符串表加载字符串资源。所以,在后期要进行多语言版本转化时,只需要把字符串表中的字符串翻译一下,然后,重新编译。这样程序就是另外一种语言的了,非常的方便,因此这个过程中不需要对代码中的字符进行修改,非常省心省力。默认情况下,MFC建立一个工程后,已经建立了一个字符串表[StringTable]资源。如下图:
2、然后,双击打开“StringTable”,出现如下界面。这个字符串表就像EXCEL一样,直接编辑。
3、编辑完后,保存此文件即可。下面就介绍如何在代码中使用字符串资源。-------颍骈城茇-------------------代码段1--------------------------------幻腾寂埒--------CStringstr;//-声明并初始化一个CString对象实例str.LoadString(IDS_MY_TIP_MSG);//-使用CString类提供的LoadString函数加载字符串资源MessageBox(str);//-将字符串通过消息对话框显示出来--------------------------代码段1----------------------------------------.
4、以上是MFC的实现,非常简单易用。CString的LoadString函数只酋篚靶高需要一个字符串资源的ID值即可。为了让读者了解的更加清嚎猎鬟沆楚,知道CString内部的实现,我们来看看WindowsAPI的实现方式:-------------------------代码段2-------------------------------TCHARtcMsg[255]=_T("");//-声明并初始化一个字符数组::LoadString(NULL,IDS_MY_TIP_MSG,tcMsg,255);//-加载字符串::MessageBox(NULL,tcMsg,_T("消息提示"),MB_OK);//-显示字符串-------------------------代码段2-------------------------------
5、下面解释一下LoadString函数。代码段1是封装了API的LoadString实现的,所以有必要了解一下API的LoadString函数。LoadString的参数依次是:实例句柄,资源ID,字符串资源缓冲地址,字符串资源缓冲字节大小。
6、如果是自己的程序,那么实例句柄设置为空,如果是使用其他程序的资源,使用其他程序的进程实例句柄,这里就不讨论其他程序的。资源ID就是字符串表中的字符串对应的ID。缓冲地址是LPTSTR类型的,使用TCHAR数组即可。大小则设置为数组的大小,按照字节数计算。如果函数执行成功,则返回得到的从字符串表中加载到缓冲的TCHAR字符个数,不包括空字符。如果字符串资源不存在则返回0