转自: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. TreeSet入门详解

    看到TreeSet先从最基础的去了解他,他是一个类,他所在的位置是java.util包中. 我们可以看一看他的继承架构图: 该类实现的接口: 1TreeSet案例: TreeSet是一个有序集合,Tr ...

  2. iOS开发——UI基础-KVO

    KVO == Key Value Observing 作用: 可以监听某个对象属性的改变 一.使用KVO Person *p = [Person new]; p.name = @"chg&q ...

  3. 据说Linuxer都难忘的25个画面

    导读 虽然对 Linux 正式生日是哪天还有些争论,甚至 Linus Torvalds 认为在 1991 那一年有四个日子都可以算作 Linux 的生日.但是不管怎么说,Linux 已经 25 岁了, ...

  4. linux中wc命令用法

    Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式: wc [选项]文件... 2.命令功能: 统计指定文件中的字节数. ...

  5. mysql 主从数据库设置方法

    1.主从数据库都需开启bin-log日志 2.在my.ini(windows)或my.cnf(linux)配置文件中添加 server-id = 1(主从配置 id 必须不同) 例子: [mysqld ...

  6. 极客DIY:如何用Siri与树莓派“交互”

    苹果在2014年推出的HomeKit智能家居平台的确给人眼前一亮的感觉.随着时间的推移,国外的黑客对HomeKit该逆向的逆向,结果也都汇总到了git.本着折腾到死的极客心态,从网上淘了一块树莓派进行 ...

  7. BZOJ 1004: [HNOI2008]Cards

    Description 给你一个序列,和m种可以使用多次的置换,用3种颜色染色,求方案数%p. Sol Burnside定理+背包. Burnside定理 \(N(G,\mathbb{C})=\fra ...

  8. TO BE OPEN

    我们通常都在一个很狭隘的世界里. 却以为我们有了整个蓝天.

  9. htpasswd命令

    htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名.域和用户基本认证的密码文件. 语法 htpasswd(选项)(参数) 选项 -c:创建一个加密文件:-n:不更新加密 ...

  10. JAVA分布式事务原理及应用(转)

      JTA(Java Transaction API)允许应用程序执行分布式事务处理--在两个或多个网络计算机资源上访问并且更新数据. JDBC驱动程序的JTA支持极大地增强了数据访问能力. 本文的目 ...