读书人

c++ 为什么有的函数后面是A 有的是W,该

发布时间: 2012-03-27 13:44:24 作者: rapoo

c++ 为什么有的函数后面是A 有的是W
我一个工程的里面的代码,很多函数在一个工程里面是后缀是A,代码复制到另一个工程里面,鼠标放上面就变成了W了,
请问这在C++里面代表什么呢,把我搞糊涂了,谢谢

[解决办法]
编码格式不同。。。
[解决办法]
A -- ASCII

W -- Wide Char -- UNICODE
[解决办法]
你说的应该是Windows API的名称吧?
[解决办法]
#ifdef _UNICODE
typedef XXXW XXX;
#else
typedef XXXA XXX;
#endif

因此,在代码中不要使用W和A的版本。参数用_T做自动转换。
[解决办法]
宏而已。。。
[解决办法]
Windows NT以前Windows用的是多字节字符集,Windows NT用的是UTF16字符集,为了兼容以前的代码,NT的函数用到字符串的都在后面加了个W,这些函数传入的字符串参数用的字符都是wchar_t。同时又定义对应的A函数,传入的字符串用的是char类型字符。A结尾的函数会把字符串参数转换成wchar_t字符串然后再调用对应的W结尾的函数。

读书人网 >C++

热点推荐