标题:C++6.0上编译的程序如何在Visual Studio 2012里编译
取消只看楼主
asblue
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-4-11
结帖率:0
已结贴  问题点数:20 回复次数:2 
C++6.0上编译的程序如何在Visual Studio 2012里编译
我原来代码能在VC++编译通过,但是现在想在visual studio2012编译怎么改了 一直提示错误。新手不知道如何做了。。


>f:\c++ test\mytport\mytport\port.cpp(119): error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型
1>          c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxwin.h(6702): 可能是“int AfxMessageBox(LPCTSTR,UINT,UINT)”
1>          c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxwin.h(6704): 或       “int AfxMessageBox(UINT,UINT,UINT)”
1>          尝试匹配参数列表“(const char [12])”时
1>f:\c++ test\mytport\mytport\port.cpp(130): error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型
1>          c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxwin.h(6702): 可能是“int AfxMessageBox(LPCTSTR,UINT,UINT)”
1>          c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxwin.h(6704): 或       “int AfxMessageBox(UINT,UINT,UINT)”
1>          尝试匹配参数列表“(const char [13])”时
1>f:\c++ test\mytport\mytport\port.cpp(153): error C2664: “CMutex::CMutex(BOOL,LPCTSTR,LPSECURITY_ATTRIBUTES)”: 不能将参数 2 从“char [16]”转换为“LPCTSTR”
1>          与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>f:\c++ test\mytport\mytport\port.cpp(156): error C2664: “wsprintfW”: 不能将参数 1 从“char [16]”转换为“LPWSTR”
1>          与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>f:\c++ test\mytport\mytport\port.cpp(160): error C2664: “CreateFileW”: 不能将参数 1 从“char [16]”转换为“LPCWSTR”
1>          与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>f:\c++ test\mytport\mytport\port.cpp(165): error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型
1>          c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxwin.h(6702): 可能是“int AfxMessageBox(LPCTSTR,UINT,UINT)”
1>          c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxwin.h(6704): 或       “int AfxMessageBox(UINT,UINT,UINT)”
1>          尝试匹配参数列表“(const char [13])”时
1>f:\c++ test\mytport\mytport\port.cpp(236): error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型
1>          c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxwin.h(6702): 可能是“int AfxMessageBox(LPCTSTR,UINT,UINT)”
1>          c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afxwin.h(6704): 或       “int AfxMessageBox(UINT,UINT,UINT)”
1>          尝试匹配参数列表“(const char [17])”时
1>f:\c++ test\mytport\mytport\port.cpp(491): error C2664: “MessageBoxW”: 不能将参数 2 从“const char [24]”转换为“LPCWSTR”
搜索更多相关主题的帖子: microsoft include visual files 
2015-04-11 20:45
asblue
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-4-11
得分:0 
竟然提示错误(error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型)。

   代码:

   1   void CMouseMoveView::OnAppExit()
   2   {
   3     // TODO: 在此添加命令处理程序代码
   4     if(AfxMessageBox("是否真的要退出当前程序?",MB_YESNO)==IDYES)
   5     AfxGetMainWnd()->SendMessage(WM_CLOSE);
   6    }

 办法1: 将第4行改为:if(AfxMessageBox(_T("是否真的要退出当前程序?"),MB_YESNO)==IDYES)

       或者将第4行改为:if(AfxMessageBox(L"是否真的要退出当前程序?",MB_YESNO)==IDYES)

 办法2:选择“项目”菜单->项目属性->配置属性->常规->字符集,改为“未设置”即可。


这是因为vs2005默认使用的是unicode字符编码集,而unicode要占2byte,通常的字符只占1byte,所以导致无法转换,故需要加上 _T 或 L 进行转换。


我是2012版的 我是1:先改选择“项目”菜单->项目属性->配置属性->常规->多字字符集,

:2:在字符串前加上"_T".如
 AfxMessageBox(_T("按下HOME键"));
2015-04-12 19:45
asblue
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-4-11
得分:0 
有时还会遇到次错误
使用vs2012,遇到如下错误。

1>------ 已启动生成: 项目: 20130925, 配置: Debug Win32 ------
1>  stdafx.cpp
1>d:\code\20130925\20130925\stdafx.cpp(18): error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          d:\vs2012\vc\include\stdio.h(218) : 参见“fopen”的声明
1>  20130925.cpp
1>  正在生成代码...
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

 

解决方案,项目 ->属性 -> c/c++ -> 预处理器 -> 点击预处理器定义,编辑,加入_CRT_SECURE_NO_WARNINGS,即可。
2015-04-12 19:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-443868-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.263593 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved