VS2017中使用TextOutW()参数不匹配问题;“BOOL CDC::TextOutW(int,int,const CString &)”: 不能将参数 3 从“const char [18]”

在VS2017环境下使用MFC编程时,遇到TextOutW()函数参数类型不匹配的问题。原有代码使用`char *`指针传递字符串,但在VS2017中需要`const CString &`。通过创建一个`CString`对象转换原始字符串,解决了转换问题。具体解决方法是将`pDoc->m_pStr`转换为`CString`类型的`str1`,然后使用`pDC->TextOut(20, 20, str1)`进行输出。" 131951024,10919702,如何在Github上创建仓库并推送本地项目,"['github', 'git', 'git操作', '版本控制', '代码托管']
摘要由CSDN通过智能技术生成

最近老师给我布置做上位机的任务,虽然各种语言和编程环境看来看去,但因为个人基础不足,加上现有的能参考和借用的东西都是VC6.0+MFC环境的,所有我也只能入了这个大坑。在按照清华大学出版社出版的《MFC Windows应用程序设计》(任哲.2004)学习MFC基础知识时(度上很多例程都是出自本书),由于编者使用的是VC6.0环境,而我是VS2017+win10,在“鼠标和键盘”一章复现程序时发现点小问题。上网查找后发现这个问题在各版本VS中都会发生,但是少有的几个版本的解决方案中给出的说法总觉得差强人意,不能完全解决书上案例的修改问题。故在此给出我的修改方式。具体原因我虽然大致自己明白,但是说不清楚就不解释了。

错误说明:VC程序中使用了文字输出函数,TextOut(20,20,pDoc->m_pStr),前两项是显示文本的坐标,第三项是字符串指针,其中pDoc为有GetDocument获得的View视图的文档指针,m_pStr为在其他函数结构中赋值的字符串,声明为"char * m_pStr;"。在VS2017中使用此代码,会显示“E0304 没有与参数列表匹配的 重载函数 "CDC::TextOutW" 实例”以及“C2664 “BOOL CDC::TextOutW(int,int,const CString &)”: 无法将参数 3 从“char *”转换为“const CString &””。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值