windows编程------TextOut与TextOutw与TextOutA,基于vs2010

问题源于:计算机图形学实验,p218,《计算机图形学及实用编程技术》李春雨,北航出版社


按书上的代码输入编译失败

错误行如下:

pDC->TextOut(rc.right/2-10,10,"X");

错误类似于这个:

 error C2664: “BOOL CDC::TextOutW(int,int,const CString &)”: 不能将参数 3 从“char [80]”转换为“const CString &”

百度得:

------------------------------------------------

TextOutA()是TextOut()的ASCII版本   
TextOutW()是TextOut()的Unicode版本       
如果程序中定义了   _UNICODE     编译的时候编译器会自动链接TextOutW()   
如果程序中没有定义   _UNICODE     编译的时候编译器就会自动链接TextOutA()

地址:http://blog.sina.com.cn/s/blog_6285da3c0100hjul.html

-----------------------------------------------------------------------------

但是TextOutA()会显示cdc不含此成员。

TextOut()可以使用 ,但是需要在"X"前面加上_T()

即:

pDC->TextOut(rc.right/2-10,10,_T("X"));

这个方法出自:

http://bbs.csdn.net/topics/350188886

另外还有:

TEXT("文本")
_T("文本")
L"文本"

解释:

_T表示后面的内容为UNICODE常量字符串
格式不只是_T,那对括号是必须的_T() 

 在stdafx.h中有如下定义:

#ifdef _UNICODE

可见这个建立的项目中,定义了 _UNICODE。


相关学习:

Unicode简介

http://www.cnblogs.com/speedmancs/archive/2010/04/27/1721715.html

------------------------------------------------------------------------------------------------------------

END

你可能感兴趣的:(windows编程------TextOut与TextOutw与TextOutA,基于vs2010)