首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

string跟wstring?在Windows API中的应用

2012-10-15 
string和wstring?在Windows API中的应用?在windows的API接口中的参数好多都是用的const char*或者const wc

string和wstring?在Windows API中的应用?
在windows的API接口中的参数好多都是用的const char*或者const wchar*,这样我可以写一个字符数组
TCHAR a[]="Hello!";
就可以应付了,这明显是C的写法。

但是用C++还要考虑有没有使用UNICODE而采用string还是wstring,没有通用的办法吗?难道要自己去定义一个通用的‘tstring’吗?C++没有提供这种解决办法吗办法吗?

而且用到这种API接口的时候参数还要用string的成员函数c_str()把原来的string类型转换为C风格的字符串才能用,感觉绕了好大圈子,难道C++不适合写Windows API的程序吗?

不知道我又没有描述清楚,小菜求教各位大侠了!谢谢!

积分不多还请见谅啊!

[解决办法]
个人觉得TCHAR是windows平台下的重定义类型,应该紧紧与windows API联系在一起。对于独立于平台的代码如库、算法等等,我还是更喜欢使用string、wstring之类的C++内置内容。

C/C++ code
#include <string>#if defined(UNICODE) || defined(_UNICODE)#define cpp_char wchar_t#define cpp_string std::wstring#else#define cpp_char char#define cpp_string std::string#endif
[解决办法]
我觉得 楼主和我一样, 在面对windows开发的时候, 很想用捍卫C++的主权地位。只可惜,微软用C++写了一个该死的MFC产品,我个人觉得影响了很多人,甚至有人把C++理解成了MFC。 对于字符串,windows核心编程 第二章 也主张ANSI/UNICODE 的 编码风格, 就是_t系列的宏函数之类的东西 包括你的main。假如,你自己想坚持用string wstring 你可以借鉴3楼

热点排行