问题源于:计算机图形学实验,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。
相关学习:
http://www.cnblogs.com/speedmancs/archive/2010/04/27/1721715.html
------------------------------------------------------------------------------------------------------------
END