VS2013下使用QT和MFC的错误解决方案
2017-12-28 22:53
1571 查看
1. error C4996: 'fopen': This function or variable may be unsafe.
做法可参照:http://jingyan.baidu.com/album/49711c616b8a1ffa441b7cdc.html?picindex=1
2. error C2664: “int GetKeyNameTextW(LONG,LPWSTR,int)”: 无法将参数 2 从“char [80]”转换为“LPWSTR”
做法:设置下工程属性,设为多字节。 工程属性--general--characterset---usemulti-bytecharacterset
3.error C3861: “ModuleFromAddress”: 找不到标识符
做法:该标识符未声明定义,需声明定义该标识符;
4.error C2660: 'LoadLibraryA' : function does not take 2 parameters
做法:参数错误,检查参数原型,查看引用是否正确
5.error MSB8031: Building an MFC project for a non-Unicode character set is deprecated.
做法:缺少一个MFC插件
使用https://download.microsoft.com/download/0/2/3/02389126-40A7-46FD-9D83-802454852703/vc_mbcsmfc.exe链接下载安装,
参照http://jingyan.baidu.com/article/ff42efa916aca5c19e22029a.html
6.error C2039: “ImageDirectoryEntryToData”: 不是“`global namespace'”的成员
添加:以下两行代码
#include <imagehlp.h>
#pragma comment (lib, "imagehlp")
7.IntelliSense: 未定义标识符 "_countof"
添加以下两行代码:
#include <stdlib.h>
8.error C1189: #error : Need to include strsafe.h after tchar.h
在stdafx.h文件中添加#include <tchar.h>
9.error C2733: “SetSysHook”: 不允许重载函数的第二个 C 链接
原因:extern "C" __declspec(dllexport),以C的方式,即不支持重载,所以代码中有导出函数的参数不同,修改即可
10.error LNK1201: 写入程序数据库“E:\chf_yjy's_work\work5\Procress\HookTerminateProcess\Debug\HookTerminateProcess.pdb”时出错;请检查是否是磁盘空间不足、路径无效或权限不够
做法:打开项目属性–>链接器–>调试,去掉调试信息,干掉PDB文件,以后不依赖PDB就好了。但是这样你就等于阉割了VS的调试功能,果然是欲练此功必先自宫呀。(需要更好的办法。。。。。。)
修正:将原debug文件夹或release文件夹删除重新生成解决方案即可
error LNK1104: 无法打开文件“debug\\print.ilk”
做法同上。
11.error C2440: “初始化”: 无法从“const char [20]”转换为“wchar_t”
参照以下代码:
wchar_t user[] = L"administrator";
12.error C1853: “Debug\mymhook.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
做法:可将该项目属性-》C/C++-》预编译头,中的预编译头选项设置为空
可参照:http://www.vcerror.com/?p=2081
13.warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。
做法可参照:http://blog.csdn.net/enjoy517905407/article/details/37958035
使用VS_QT集成环境时,当出现this application failed to start because it could not find or load the Qt platform plugin "windows"...的弹框,应当在EXE文件夹建立platforms的子文件夹,
从QT的安装目录中的:\Qt\Qt325.5.1\5.5\msvc2013\plugins\platforms目录拷贝出qwindows.dll(Release)[或qwindowsd.dll(debug)],放到exe的platforms目录下
14.error C2440: '=' : cannot convert from 'const char [xx]' to 'char *'
可以这样做:
feeble = (char*)malloc(sizeof(""));
strcpy(feeble, "");
15.error C2375: 'WSAAsyncGetHostByAddr' : redefinition; different linkageC:\Program Files (x86)\Windows Kits\8.1\Include\um\Winsock2.h
重复包含了头文件Winsock2.h,去除这一条include语句即可
16.error C1083:Cannot open source file:.......moc_XXX.cpp
XXX.cpp中可能存在非法字符如下划线等,需将相应文件重命名
17.error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2143: syntax error : missing ',' before '&'
以上两个错误一同出现,原因是我在传参时 一个参数为class aaa,然而 我包含了相应的头文件 却没有在使用之前 进行class aaa;的声明
操作:即使用前声明该类
18.在VS2008中生成时出错:error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
这是因为在VC6中,如果没有显示的指定返回值类型,编译器将其视为默认整型。但是vs2005不支持默认整型。
解决方法如下:
打开:项目----项目属性----配置属性----C/C++----命令行,在附加选项那里添加/wd4430这个选项。(参考自http://www.cnblogs.com/cuteshongshong/archive/2012/10/11/C4430.html)
做法可参照:http://jingyan.baidu.com/album/49711c616b8a1ffa441b7cdc.html?picindex=1
2. error C2664: “int GetKeyNameTextW(LONG,LPWSTR,int)”: 无法将参数 2 从“char [80]”转换为“LPWSTR”
做法:设置下工程属性,设为多字节。 工程属性--general--characterset---usemulti-bytecharacterset
3.error C3861: “ModuleFromAddress”: 找不到标识符
做法:该标识符未声明定义,需声明定义该标识符;
4.error C2660: 'LoadLibraryA' : function does not take 2 parameters
做法:参数错误,检查参数原型,查看引用是否正确
5.error MSB8031: Building an MFC project for a non-Unicode character set is deprecated.
做法:缺少一个MFC插件
使用https://download.microsoft.com/download/0/2/3/02389126-40A7-46FD-9D83-802454852703/vc_mbcsmfc.exe链接下载安装,
参照http://jingyan.baidu.com/article/ff42efa916aca5c19e22029a.html
6.error C2039: “ImageDirectoryEntryToData”: 不是“`global namespace'”的成员
添加:以下两行代码
#include <imagehlp.h>
#pragma comment (lib, "imagehlp")
7.IntelliSense: 未定义标识符 "_countof"
添加以下两行代码:
#include <stdlib.h>
8.error C1189: #error : Need to include strsafe.h after tchar.h
在stdafx.h文件中添加#include <tchar.h>
9.error C2733: “SetSysHook”: 不允许重载函数的第二个 C 链接
原因:extern "C" __declspec(dllexport),以C的方式,即不支持重载,所以代码中有导出函数的参数不同,修改即可
10.error LNK1201: 写入程序数据库“E:\chf_yjy's_work\work5\Procress\HookTerminateProcess\Debug\HookTerminateProcess.pdb”时出错;请检查是否是磁盘空间不足、路径无效或权限不够
做法:打开项目属性–>链接器–>调试,去掉调试信息,干掉PDB文件,以后不依赖PDB就好了。但是这样你就等于阉割了VS的调试功能,果然是欲练此功必先自宫呀。(需要更好的办法。。。。。。)
修正:将原debug文件夹或release文件夹删除重新生成解决方案即可
error LNK1104: 无法打开文件“debug\\print.ilk”
做法同上。
11.error C2440: “初始化”: 无法从“const char [20]”转换为“wchar_t”
参照以下代码:
wchar_t user[] = L"administrator";
12.error C1853: “Debug\mymhook.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
做法:可将该项目属性-》C/C++-》预编译头,中的预编译头选项设置为空
可参照:http://www.vcerror.com/?p=2081
13.warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。
做法可参照:http://blog.csdn.net/enjoy517905407/article/details/37958035
使用VS_QT集成环境时,当出现this application failed to start because it could not find or load the Qt platform plugin "windows"...的弹框,应当在EXE文件夹建立platforms的子文件夹,
从QT的安装目录中的:\Qt\Qt325.5.1\5.5\msvc2013\plugins\platforms目录拷贝出qwindows.dll(Release)[或qwindowsd.dll(debug)],放到exe的platforms目录下
14.error C2440: '=' : cannot convert from 'const char [xx]' to 'char *'
可以这样做:
feeble = (char*)malloc(sizeof(""));
strcpy(feeble, "");
15.error C2375: 'WSAAsyncGetHostByAddr' : redefinition; different linkageC:\Program Files (x86)\Windows Kits\8.1\Include\um\Winsock2.h
重复包含了头文件Winsock2.h,去除这一条include语句即可
16.error C1083:Cannot open source file:.......moc_XXX.cpp
XXX.cpp中可能存在非法字符如下划线等,需将相应文件重命名
17.error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2143: syntax error : missing ',' before '&'
以上两个错误一同出现,原因是我在传参时 一个参数为class aaa,然而 我包含了相应的头文件 却没有在使用之前 进行class aaa;的声明
操作:即使用前声明该类
18.在VS2008中生成时出错:error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
这是因为在VC6中,如果没有显示的指定返回值类型,编译器将其视为默认整型。但是vs2005不支持默认整型。
解决方法如下:
打开:项目----项目属性----配置属性----C/C++----命令行,在附加选项那里添加/wd4430这个选项。(参考自http://www.cnblogs.com/cuteshongshong/archive/2012/10/11/C4430.html)
相关文章推荐
- MFC之VS2013使用错误集
- VS2013中编译项目在静态库中使用MFC出现错误的解决方法
- 在使用Vs2013打开Vs2008的解决方案时出现了以下错误:此版本的应用程序不支持其项目类型(.csproj)
- <MFC笔记> VS2013动态库文件的创建及其使用详解
- 解决IIs及vs解决方案中(配置错误:不能在此路径中使用此配置节点)的解决办法
- 【Qt5 for VS】关于出现 Qt platform plugin "windows" 运行错误的解决方案
- VS2013验证控件出现 WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResour......的错误解决方案
- 【QT5.3】VS2013+QT5.3 中文乱码问题 解决方案
- 如何在VS 2010中使用 VS2013的解决方案
- VS2013/MFC基于对话框编程:[5]按钮的使用
- VS2013 MFC使用opencv3.0显示图片
- VS2013使用scanf、gets及字符串函数编译报错error C4996: 'scanf': This function or variable may be unsafe. 原因及解决方案
- VS使用有感——MFC程序移植至其他PC上出现的错误
- VS2013下MFC和.net混合编程编译XP兼容程序时的C1107错误的解决方法
- vs2013之错误 1 error C4996: 'fopen'的解决方案
- VS2013 编译VC6.0等比较老版本的MFC工程字符集错误问题的解决方法
- 如果在VS 2010中使用 VS2013的解决方案
- 如果在VS 2010中使用 VS2013的解决方案
- QT Creater/VS2013的使用(快捷键,调试等)
- VS2013下各种错误以及解决方案 (动态更新)