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

想把一个 wchar_t的初始化语句放在宏里,请教这个宏如何写

2012-04-08 
想把一个 wchar_t的初始化语句放在宏里,请问这个宏怎么写?例如这是个wchar_t的初始化语句----------------

想把一个 wchar_t的初始化语句放在宏里,请问这个宏怎么写?
例如这是个wchar_t的初始化语句
-------------------
wchar_t   *str   =   "这是双字节 ";
-------------------

现在想把它放在宏里边,这个宏的参数就是初始化的字符串
如下:
#define   MACRO( "这是双字节 ")   ....(后边怎么写???)

int   main()   {
string   str   =   MACRO( "这是双字节 ");
cout < <str < <endl;
return   0;
}


[解决办法]
#define MACRO( "这是双字节 ") L "这是双字节 "
[解决办法]
#define MACRO(“x”) L##“x”
[解决办法]
##是粘连
#define TEXT(x) L##x
则TEXT( "aaaaa ")被替换为 L "aaaaa "

#是引号符
#define STR(x) #x
则STR(aaaaa)被替换为 "aaaaa "

其中L是说明符..说明是一个宽字符串
typedef basic_string <char> string
其中typedef basic_string <wchar_t> wstring
不要弄混了.
相应的wcout
等.

[解决办法]
不行.
要用wstring和wcout
还要设什么.....locale之类的..
烦死了..
我手边只有DEV的编译器.根本不支持..
STLPORT可能支持吧..
刚才去网上搜了一下.
有文章如下.
http://blog.chinaunix.net/u/21585/showart_200662.html
反正我没搞定过.
后来,涉及这些东西的..我一直用windows头文件了..或者纯C的上.

热点排行