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

编译程序的时候出现这样的错误,原因是在新建MFC项目的时候,设置字符集Unicode的属性。

解决方法一:

在VC2010的解决方案管理器窗口内,右击你的项目“项目”,然后选“属性”(最后一项),再点“配置属性”,是个“+”号,把它展开,然后选“常规”选项卡,倒数第三项“字符集”,选择“使用多字节字符集”。问题解决。

不过还是建议使用Unicode,否则你的程序将有很大的局限性;要是你的程序只在西方发布还好,但毕竟是适应中国大陆的程序吧,所以建议使用Unicode。

解决方法二:

使用调用CString::AllocSysString();

例如:

CString str_cap("haha");
 (const WCHAR *)(str_cap.AllocSysString()); 
 (LPCTSTR)(str_cap.AllocSysString()); 同上面效果相同

http://www.cnblogs.com/qiyebao/archive/2011/12/01/2270951.html

时间: 2024-10-21 22:58:41

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

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

MFC中给某个菜单项添加一个事件处理程序: 1.      void CMainFrame::OnTest()   2.      {   3.            MessageBox("you clicked Menu item.");   4.            // TODO: 在此添加命令处理程序代码    5.      }   编译时报告如下错误:error C2664: "CWnd::MessageBoxW": 不能将参数 1 从"c

error C2664: “MessageBoxW”: 不能将参数 2 从“const char [14]”转换为“LPCWSTR”

vs2008提示 error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR” 在外面用vs2005编写mfc程序的时候经常要MessageBox("提示信息")函数,在vc6.0是没有问题的,但是在vs2005却会有下面的提示: error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR” 这个错误提示的原因是VS20

error: C2664: “zajiao::zajiao(const zajiao &)”: 无法将参数 1 从“const char [12]”转换为“char *”

原本打算用一个字符串"ABCDEF12345"作为类zajiao的构造函数的参数,用来创建类zajiao的对象zajiao1. 1 zajiao zajiao1("ABCDEF12345"); 结果提示: F:\Users\denggelin\Documents\qtduojicheng\main.cpp:31: error: C2664: “zajiao::zajiao(const zajiao &)”: 无法将参数 1 从“const char [12]

MFC之调用DLL的问题:error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR

今天在项目中遇到了一个小小的问题,在调用别人动态连接库(DLL)的时候,总是出现如下提示,导致程序无法正常运行,编程环境:VS2010+MFC 问题提示:error C2664: "LoadLibraryW": 不能将参数 1 从"const char *"转换为"LPCWSTR 经过查找资料,问题得以解决,感谢: 解决方法来源于:http://blog.sina.com.cn/s/blog_6a2236590100xbgl.html 1 静态调用Lib

error C2665: “operator new” : 5个重载中没有一个可以转换参数1(从“const char [71]”类型)

error C2665: "operator new" : 5个重载中没有一个可以转换参数1(从"const char [71]"类型) 这个错误是怎么回事啊,搜索了整个项目好像没有可疑的new操作阿.这个错误是在将两个工程合并成一个过程中产生的.合并前没有这样的错误. MainFrm.cpp d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xmemory(34) : error C266

[转]"error while loading shared libraries: xxx.so.x" 错误的原因和解决办法

[转]"error while loading shared libraries: xxx.so.x" 错误的原因和解决办法 http://blog.csdn.net/sahusoft/article/details/7388617 一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared obje

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)解决办法

问题重现(以下讨论范围仅限Windows环境): C:\AppServ\MySQL> mysql -u root -pEnter password:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 编辑mysql配置文件my.ini(不知道在哪请搜索),在[mysqld]这个条目下加入  skip-grant-tables保存退出后重启mysql 1.点击“开始”->“运行”(

Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not found解决办法

导入开源项目的时候老是报这个错 Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not found 解决办法: 首先在Project下那个build.grade里面添加全局依赖 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.5.0' //1.自动化maven打包插

MySQL出现 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 解决办法

进入cmd 输入 mysql -u root -p 出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 找到安装mysql的根目录打开 my.ini文件 添加一条语句 skip-grant-tables 保存后退出 进入cmd 输入net stop mysql; 停止mysql  然后在开启 net start mysql;  这步是修改完文件后重启一下 然后在 输入 mysq