返回信息流char lpszClassName[5]="窗口";
wndclass.lpszClassName=lpszClassName;
第二句话为什么错?
cannot convert from 'char [5]' to 'LPCWSTR'
多谢了
这是一条镜像帖。来源:北邮人论坛 / soft-design / #22451同步于 2007/11/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
一个VC++windows编程问题
talentlin8
2007/11/24镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
WCHAR lpszClassName[5]=L"窗口";
wndclass.lpszClassName=lpszClassName;
试试。是Unicode的问题
【 在 WangZhaogang 的大作中提到: 】
: WCHAR lpszClassName[5]=L"窗口";
: wndclass.lpszClassName=lpszClassName;
: 试试。是Unicode的问题
不是很懂啊
"窗口"不是有四个字节吗??怎么能用wchar来存呢??
然后wndclass.lpszClassName不是一个longpointer吗?怎么能用wchar来赋值呢?
是Unicode的问题,具体为什么就不知道了。曾今困扰我N天的问题。。
【 在 Lynus (爱生活,爱Linux) 的大作中提到: 】
: 不是很懂啊
: "窗口"不是有四个字节吗??怎么能用wchar来存呢??
: 然后wndclass.lpszClassName不是一个longpointer吗?怎么能用wchar来赋值呢?
: ...................
汗,这要看你的项目属性里是unicode还是multibyte,至于这两个分别是什么意思,我想msdn里面已经说得很清楚了
类似LPTSTR这种windows data type中的T就表明如果这个项目是个unicode项目,那么就是一个wchar的指针,那么传给其的字符串必须是unicode编码的,这就需要用L""转化一下
如果是个multibyte的项目,也就是mbcs的,那么这个T就define为char,那么传得就是默认的char了
这也就是为什么在win32编程里,基本不会用char这个类型而去用TCHAR,去用LPT这种预定义好的指针
自己去看看windows data type就明白了,同样大多数函数windows都进行了重载,例如strcpy,在win里面就用lstrcpy,其会自动判断是wchar还是char
【 在 Lynus 的大作中提到: 】
: 不是很懂啊
: "窗口"不是有四个字节吗??怎么能用wchar来存呢??
: 然后wndclass.lpszClassName不是一个longpointer吗?怎么能用wchar来赋值呢?
可是所有字符的编码在unicode里和gbk里以及big5里可不一样啊,编译器怎么知道2进制究竟该用什么样的
嗯嗯,赞
【 在 rebirthatsix (茫犭者) 的大作中提到: 】
: 可是所有字符的编码在unicode里和gbk里以及big5里可不一样啊,编译器怎么知道2进制究竟该用什么样的
lpszClassName本身就是个LPCWCHAR的类型呀
【 在 Lynus 的大作中提到: 】
: 不是很懂啊
: "窗口"不是有四个字节吗??怎么能用wchar来存呢??
: 然后wndclass.lpszClassName不是一个longpointer吗?怎么能用wchar来赋值呢?
【 在 rebirthatsix 的大作中提到: 】
: 可是所有字符的编码在unicode里和gbk里以及big5里可不一样啊,编译器怎么知道2进制究竟该用什么样的
你编程序的时候是用的系统的默认的编码编写的源代码, 编译器会根据默认编码转化为unicode, windows的中文默认编码是gbk(至少 2000 和 xp 是)