宽字符问题,期望高手解决!!

kuangjingbo 2004-04-04 04:31:38

#define UNICODE
......

static TCHAR szText[] = TEXT ("\x41\x42\x43\x44\x45 ")
TEXT ("\x61\x62\x63\x64\x65 ")

TEXT ("\xC0\xC1\xC2\xC3\xC4\xC5 ")
TEXT ("\xE0\xE1\xE2\xE3\xE4\xE5 ") ;
......

szText数组的前两行没有错误,但是后两行出现12个错误(正好12个数据).
错误的代码为:error C2002: invalid wide-character constant

这是《windows程序设计》中的代码,我一点都没有改动呀!为什么错了?
我用的是vc6.0 
请高手给我解释一下
...全文
16 点赞 收藏 17
写回复
17 条回复
kuangjingbo 2004年04月13日
问题已经解决, ross33123() 你的方法很好用, 谢谢了
回复 点赞
ross33123 2004年04月10日
解决方法

在声明 szText 之前使用

#pragma setlocale("en")

含义见 MSDN
回复 点赞
ross33123 2004年04月10日
VC 程序的源代码本身不是 UNICODE 编码

在遇到一个用 L"" 表示的字符串时

编译程序必须把它转换为UNICODE

而转换的一个参数是使用什么代码页

VC会根据当前环境选定一个缺省的代码页

《Winodws程序设计》的作者应该是使用某个西文的代码页

所以没问题

我们使用中文系统,中文代码页

所以会出现这个错误


回复 点赞
ross33123 2004年04月10日
《Winodws程序设计》没有错

错在我们处在中文环境中
回复 点赞
kuangjingbo 2004年04月09日
怎么没有人?问题没有解决!
回复 点赞
kuangjingbo 2004年04月06日
楼上的,对就是《Winodws程序设计》第17章的,PICKFONT那个程序。
当编译UNICODE版的,就会出现这个问题!
回复 点赞
ghgk 2004年04月06日
楼主,是《Winodws程序设计》的那个源程序代码啊?我看看先,不过我在用宽字符时,都是在项目属性的C/C++页面添加“UNICODE”的,好像使用中并没有发现什么问题。
回复 点赞
kuangjingbo 2004年04月06日
快来个带星的,给我们解释解释
回复 点赞
kuangjingbo 2004年04月05日
hanzp(木瓜.COM) :用了你的方法也不行!
仍然是error C2002: invalid wide-character constant
当我把字符的范围取在'\x81'到'\xFF'之间就会出现这个问题,而不管我怎么设置

回复 点赞
kuangjingbo 2004年04月05日
楼上的,不行呀!
回复 点赞
lphlord 2004年04月05日
\xC0\xC1\xC2\xC3\xC4\xC5改为
\x0C0\x0C1\x0C2\x0C3\x0C4\x0C5
回复 点赞
kuangjingbo 2004年04月05日
我用的是win32 application建立的工程,不可以吗?
回复 点赞
hanzp 2004年04月04日
你有没有用MFC,VC在win32 application模式创建的程序TCHAR转化CHAR或WCHAR有问题的
改成
#define _UNICODE
看看
或手工添上
#ifdef UNICODE
#define TCHAR WCHAR
#else
#define TCHAR CHAR
#endif
回复 点赞
bhut 2004年04月04日
我吧你的代码考过来编译运行都没错
回复 点赞
kuangjingbo 2004年04月04日
来人呀!
回复 点赞
kuangjingbo 2004年04月04日
怎么还没有人回答我!!
都两天了!
回复 点赞
kuangjingbo 2004年04月04日
高手快来呀!!
回复 点赞
发动态
发帖子
VC/MFC
创建于2007-09-28

7889

社区成员

42.1w+

社区内容

VC/MFC相关问题讨论
社区公告
暂无公告