VC工程中有个*.rc文件,放的是图片、字符串等资源,该文件可以用记事本打开,我们可以理解它就是一个文本文件。放在RC中的资源会被编译到软件的可执行程序中,作为不可修改的一部分。
在这中情况下,如果要切换语言(针对字符串资源),更换界面风格(图片资源)等等,就必须对工程的RC文件重新编辑,并大量调整程序,然后重新发布软件,不言而喻,这样很不好。
后来,设计人员就想到了一种方式,把这些资源放在动态库中,切换语言只要切换动态库,切换界面风格也只需要切换动态库,这样程序就不需要做太大的修改,甚至可能只需要改程序中的某个标志。如果程序足够健壮,可以不要改代码,只要简单的替换动态库就可以了。但是这样还是有缺陷,还是必须开发人员制作资源动态库,然后发布新的版本。
为了更加方便一点,设计人员干脆放弃了资源。这里所谓的放弃资源,是指把资源从可执行文件或者动态库中脱离出来,在用户面前公开,允许用户直接修改图片和字符串就能改变软件的语言和风格。
举个例子说明:
在安装程序的某个目录下,有一个文本文件,文件中的数据以“KEY”和“VALUE”的形式存放,KEY标识软件加载字符串的归属(按钮的标题,菜单的提示等等),VALUE表示字符串的内容。软件只需要读取这个文本文件。用户可以编辑这个文本文件来修改语言。XML出现之后,对这样的文本的管理变得更加的简单和清晰。