程序是用本地语言做的,因为程序不是很小,有没有什么直接的办法,把程序改成在unicode下编译的程序。里面有接受unicode表示的字体,想支持多国语言,谢谢。

解决方案 »

  1.   

    project->settings->c++--->preprocessor definitions--->增加 "_UNIOCDE"
      

  2.   

    参考:http://blog.csdn.net/wang_junjie/archive/2007/02/28/1516993.aspx
      

  3.   

    改为UNICODE编码的程序还需要改几个地方。貌似_MBCS这个要去掉,加上“_UNICODE”.而且程序中很多相应的函数要改,都要改成相应的支持宽字符的函数
      

  4.   

    如果楼主的软件没有运行时动态切换的需求,我还是建议不要改成unicode的,除非软件不是很大,而且时间比较宽裕。
    由于最初开发软件的时候根本没有考虑到unicode,把ansi版本改成uncode涉及到的地方太多,所有的字符串处理函数都得重新考虑,有时候你会发现那简直就是个噩梦。
    假如您的软件对不同的客户只提供一种语言,例如美国的只提供英语版本,西班牙的只提供西班牙语版本,我倒可以提出一个比较简单的方法供参考,但只需维护一份代码,且不需修改为unicode。
    你可以把程序里面写死的字符串(假如有的话)都提取到资源string table里面,然后复制资源文件rc,修改名字,重新加载到工程中,然后修改所有资源的语言种类为需要的语言种类,然后翻译资源中的字符串就好了,如果还有别的语言,重复之。至于怎么让不同的资源添加到工程中编译,你可以到build -configration,中添加,然后到project-》setting里面设置,哪个版本包含哪个资源文件。如果这个方案适合你,有不清楚的地方,你可以留言。网上好像也有类似的方案,但我刚才没有找到,你自己也可以google一下,这种方案跟很多动态切换的方案比起来简直不值一提,但我还是觉得,适合的才是最好的。