读书人

windows linux unicode 的有关问题

发布时间: 2012-02-25 10:01:49 作者: rapoo

windows linux unicode 的问题
现在有程序在windows和linux下都要编译,并且符合unicode。
我现在比较糊涂,网上说通过定义_UNICODE和UNICODE就可以进行自动转换程序。但是好像又要使用_T或_TEXT什么的才行,还有使用strlen还是wsclen?如果这个程序在linux也要进行编译,又该怎么办呢?MSDN上好像说_T是windows下专有的。
等待高手解决。。。

[解决办法]
我做过一些这方面的工作,_T和_TEXT应该都是windows上的宏,Linux下面应该没有,
不过你可以看看_T和_TEXT最终的定义,应该是c++标准规定的L宏,这个应该是两个
平台下通用的,所以你只要把windows上的_T和_TEXT定义拷贝到你的程序里,然后判断
是不是windows平台,也就是看_WIN32宏是否已经定义。关于数据类型,wchar_t是c++
通用宽字符类型,它在两个平台下应该都可以使用,或者你也可以拷贝windows的WCHAR
的定义,字符串类可以用stl的wstring。至于字符串操作函数,应该用标准的c++宽字节
字符串函数,比如wstrlen,wsprintf,不过这些函数的名字在两个平台下好像不完全
一样,而且有些在windows上有的在linux并没有!至于单字节多字节转换,windows上
一般就是MultibyteToWideChar和WideCharToMultiByte,但是要想通用,应该还是用c++
的mbstowcs族函数,行了就先说这么多吧。

读书人网 >C++

热点推荐