char CString 的问题

xiaogang_1 2009-08-09 05:08:22
我刚学VS2005, 做第一个小例子就让我郁闷

别人例子在ondraw里是这么写的
pDC->TextOut(0, 0, "Hello, world");
运行没有问题,

但是我自己新建的一个解决方案,
这句就报错 pDC->TextOut(0, 0, "Hello, world");在6.0里这样做是没有问题的,但这为什么呢,我应该怎么去设置呢
error C2664: 'BOOL CDC::TextOutW(int,int,const CString &)' : cannot convert parameter 3 from 'const char [13]' to 'const CString &'

另外我改成这样也没有问题了
pDC->TextOut(0, 100, CString("Hello, world"));
pDC->TextOut(0, 0, _T("Hello, world"));

我应该怎么去设置???


...全文
138 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
animalgogogo 2009-08-12
  • 打赏
  • 举报
回复
UP
scsnsjsl_cs_dn 2009-08-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 visualeleven 的回复:]
引用 9 楼 feilinhe 的回复:
一般最好写成_T("")的形式,除非明确是Unicode的


写成TEXT(“”)也一样啊
[/Quote]
_T,比TEXT方便多了
xiaogang_1 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 arpnet99 的回复:]
VC6.0 默认的是多字节
VS2005默认的是Unicode
可以在解决方案资源管理器里右键 ->配置属性->常规 中修改默认的编码方式
[/Quote]

我按照你的方法去做了,又出现这样的错误。
1>mt.exe : general error c101008a: Failed to save the updated manifest to the file ".\debug\2.exe.embed.manifest". Bpcn
但是我直接运行debug下的exe,程序正常。

我还需要修改那些设置?
花爺 2009-08-09
  • 打赏
  • 举报
回复
还是用Unicode好一点!一个字符占用两个字节
习惯就好!
Eleven 2009-08-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 feilinhe 的回复:]
一般最好写成_T("")的形式,除非明确是Unicode的
[/Quote]

写成TEXT(“”)也一样啊
feilinhe 2009-08-09
  • 打赏
  • 举报
回复
一般最好写成_T("")的形式,除非明确是Unicode的
晒月光的青蛙 2009-08-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhanggy_skynow 的回复:]
pDC->TextOut(0, 100, CString("Hello, world"));

为啥这样写也可以哇
[/Quote]
CString 构造函数会自动进行转化为_T("")
这不是鸭头 2009-08-09
  • 打赏
  • 举报
回复
VC6.0 默认的是多字节
VS2005默认的是Unicode
可以在解决方案资源管理器里右键 ->配置属性->常规 中修改默认的编码方式
MoXiaoRab 2009-08-09
  • 打赏
  • 举报
回复

用多字节
zhanggy_skynow 2009-08-09
  • 打赏
  • 举报
回复
pDC->TextOut(0, 100, CString("Hello, world"));

为啥这样写也可以哇
xiaogang_1 2009-08-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xjpresley 的回复:]
因为别人的工程师  VC6.0的 。 用的是  单字节

而你的2005用的是双字节  所以必须要用 宽字符  _T("Hello, world")  表示 hello world是以宽字节编码
[/Quote]


他的也是2005
xiaogang_1 2009-08-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fishion 的回复:]
charator style设置多字节或Unicode
[/Quote]

这个在哪设置啊
xjpresley 2009-08-09
  • 打赏
  • 举报
回复
因为别人的工程师 VC6.0的 。 用的是 单字节

而你的2005用的是双字节 所以必须要用 宽字符 _T("Hello, world") 表示 hello world是以宽字节编码
fishion 2009-08-09
  • 打赏
  • 举报
回复
charator style设置多字节或Unicode

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧