最近老师给我布置做上位机的任务,虽然各种语言和编程环境看来看去,但因为个人基础不足,加上现有的能参考和借用的东西都是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 &””。