想把一个 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的上.