error C2664: 'TextOutW' : cannot convert parameter 4 from const char [5]' to LPCTSTR

时间:2022-08-31 22:21:33

转自:http://blog.sina.com.cn/s/blog_4aa4593d0100odra.html

问题的原因是字符串ANSI和Unicode编码的区别, 
VC6与VS2003等默认使用ANSI编码,而VS2005默认采用Unicode.
简单的说,ANSI用1个字节表示字符,Unicode用2个字节表示1个字符.
若想要你的代码在VS2005中编译通过,3中方法:
1.可修改编码选项:项目属性-->配置属性-->常规-->字符集-->使用多字节字符集
2.把你字符串定义为宽字符串,例如:
------WCHAR szName[128] ;
------CreateWindow ( L"这里为类名",…… ) ; // 这里L为宽字符串宏定义
3.显式指定API版本:把WNDCLASS改为WNDCLASSA,把CreateWindow改为CreateWindowA。 (这个方法有时候不是很好用,很多函数需要改,所以有改不全的可能,所以尽量用第一个方法
对于Win32中与字符串相关的API一般有两个版本Ansi版和Unicode版。
例如CreateWindowA和CreateWindowW。

通常在使用过程中不显式指定,如果在VC6中使用CreateWindow则编译器就使用A版,如果在VS2005中使用CreateWindow则编译器就使用W版,然而在开发过程中可以显式指定。

另外:在VC2005以上版本中 LPCTSTR pstring="自定义的字体";而不是 LPCTSTR *pstring="自定义的字体";

否则出现cannot convert parameter 4 from 'LPCTSTR* ' to 'LPCSTR'的错误提示。

error C2664: 'TextOutW' : cannot convert parameter 4 from const char [5]' to LPCTSTR的更多相关文章

  1. error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR”

    在使用VS2010编写运行时动态链接dll文件时出现的一个问题,问题解决得益于此文章: http://blog.sina.com.cn/s/blog_6a2236590100xbgl.html 通过调 ...

  2. C++ Error C2664:无法将参数 1 从“const char [9]”转换为“LPCWSTR”解决方案

    问题出现 编译平台:VS2013     Windows 出现地方:在使用LoadLibrary( )函数动态链接DLL文件时出现的一个问题 Eg.   在使用 UNICODE字符的工程中,  HIN ...

  3. VS2010 error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [3]”转换为“LPCTSTR”

    VS2010 (VC2010)建立工程时默认的字符集是Unicode,所以在代码中使用MessageBox时需要输入Unicode,用TEXT()这个宏输入参数,否则会报错:   代码:Message ...

  4. error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR”

    vs2008提示 error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR” 在外面用vs2005编写mfc程序的 ...

  5. 【转载】C++编译出现 error C2664: 不能将参数 2 从“const char [5]”转换为“LPCTSTR”解决办法。

    编译程序的时候出现这样的错误,原因是在新建MFC项目的时候,设置字符集Unicode的属性. 解决方法一: 在VC2010的解决方案管理器窗口内,右击你的项目“项目”,然后选“属性”(最后一项),再点 ...

  6. C++编译遇到参数错误(cannot convert parameter * from 'const char [**]' to 'LPCWSTR')

    转:http://blog.sina.com.cn/s/blog_9ffcd5dc01014nw9.html 前面的几天一直都在复习着被实习落下的C++基础知识.今天在复习着上次创建的窗口程序时,出现 ...

  7. error C2664

    error C2664: “int CWnd::MessageBoxW(LPCTSTR,LPCTSTR,UINT)”: 无法将参数 1 从“const char [19]”转换为“LPCTSTR” n ...

  8. error C2664 转换错误汇总[转]

    vs2005提示 error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR”. 在用vs2005编写mfc程序的时 ...

  9. VC2010 CString.Format使用报错 error C2664

    error C2664: “void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...)”: 不能将参数 1 ...

随机推荐

  1. 【iPhone手机老提示升级怎么办】

    首先复制链接 https://oldcat.me/web/NOOTA9.mobileconfig  然后到自带浏览器(Safari)打开,点击GO,后会弹出安装,安装即可,如果出现密码的,这个密码是你 ...

  2. mysql临时表的产生

    sql执行会生成一个巨大的临时表,当内存放不下时,要全部copy 到磁盘,导致IO飙升,时间开销增大. 额外收获知识收藏如下: 临时表存储 MySQL临时表分为"内存临时表"和&q ...

  3. windows设置开机启动项

    一.windows下设置开机启动有如下方法 1 注册表启动项目RUN 2 计划任务,在"windows管理">"计划任务管理器"中新建任务,在操作栏指定要 ...

  4. Scala入门

    搭建环境请参考: http://www.cnblogs.com/super-d2/p/4534208.html 1.交互式编程: adeMacBook-Pro:ssdb-master apple$ s ...

  5. haproxy主配置文件

    1.haproxy 配置文件 ------------------------------------------------------------------------------------- ...

  6. 各种位置和高度计算&colon;&period;position&lpar;&rpar;、&period;offset&lpar;&rpar;、&period;outerHeight&lpar;&rpar;、&period;scrollTop、&period;scrollHeight、&period;clientHeight

    1..position()和.offset() jquery的.position()获取相对于最近的position为relative或absolute的父元素的偏移,返回.position().le ...

  7. text-overflow&colon; ellipsis&semi;省略号颜色设置

    参考stackoverfolow 想要给元素添加text-overflow: ellipsis;样式,必须保证改其父元素是块级元素,如果其是行级元素,可以通过设置display:block;或者dis ...

  8. &lbrack;CSS&rsqb; 点击事件触发的动画

    源码 https://github.com/YouXianMing/CSS-Animations/tree/master/Event 效果 细节 1) 一个完整的可回溯的动画至少包括了两种状态,以及两 ...

  9. python简介及安装配置

    概述 python是解释型语言,相对编译型语言,执行效率较低.python是通过c语言编写,官方解释器也是c语言编写cpython,也有其他的如用java编写的jpython.目前有2.0和3.0版本 ...

  10. AMI:加密的机器映像。卷

    (一)定义:镜像AMI (Amazon Machine Image,机器映像)是一个可以将操作系统.用户的应用程序.配置等一起打包的加密机器映像.用于启用实例的预配置服务器模板.每个 AMI 由一个操 ...