C++编译常见错误
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.
我像往常一样加了#define _CRT_SECURE_NO_WARNINGS,不知为啥,这次这样做不管用了。
这次使用这样的方法:解决方案,项目 ->属性 -> c/c++ -> 预处理器 -> 点击预处理器定义,编辑,加入_CRT_SECURE_NO_WARNINGS,问题解决。
1.编译我的工程时候,出现
fatal error C1010: unexpected end of file while looking for precompiled header directive
解决方法:
在文件开头添加:
#include "stdafx.h"
2.'CDataStream::GetBytes' : illegal call of non-static member function
原因:
CDataStream::GetBytes静态成员函数才可以这样调用,这是由于不小心所致。
3.VC++中,提示cannot add new member的解决方法
当我们为对话框上的控件添加事件响应函数时,出现cannot add new member 这样的提示信息。
解决方法:
将所有自动生成的文件Clean掉,关闭工程,重新启动,并Build All
4.LNK2001:unresolved external symbol “symbol”
一般来说,发生错误的原因有两个:
(1)所引用的函数、变量不存在、拼写不正确或者使用错误;
(2)可能使用了不同版本的链接库。
我遇到的情况有以下几种:
(1)所使用的函数名拼写错误
(2)所使用的函数的参数与自己编译并使用的lib库不一致。
5.Expression:_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
问题产生原因:
1.内存泄漏;所以当程序退出时,系统会收回分配的内存,于是调析构函数,由于内存已被错误地释放,于是就会出现“Debug Assertion Failed”的错误。
2.这个assert说明什么问题呢?说明有一块内存在被释放的时候,它的头部里面的信息已经被改掉了,和预期的不一样。内存分配的程序往往在被分配出的内存块头部放上一些校验信息。这个信息内存的用户是不知道也不应该修改的。这样,在内存被释放的时候,内存分配程序就可以验对这个头部信息是否被改过了。若被改过,就说明发生了内存corruption.
这种corruption有两种可能性:
1)有人在内存越界写东西;
2)这块内存已经被释放了,又被重复释放了一次。(在第一次被释放中,是内存分配程序改掉了头部
信息)。
3.pHead_>nBlockUse就可能是空指针,或它指向的东西已经不存在了。
解决办法:
一般来说,这个问题产生的原因大部分是第二种情况,而corruption也最可能是第二种情况,即重
复释放内存。对于D3DX程序来说,如果是用的D3DX的API接口创建的指针,则在Release之后不需要也不能
再调用delete来释放内存,因为Release本来就已经释放了内存,再次调用delete就会造成重复释放内存
,也就是本文所描述的那个问题。那么对应的解决办法就是删掉Release后面所对应的delete语句就OK了
。(注意,D3DX的API创建的指针只需要Release就OK,如果是自己创建的新的class,那么最好加上delete
语句来释放内存。)
我的情况是使用了两次delete [] m_pData(m_pData是我的类中定义的一个私有数据成员)
在new的后面使用了一次,在析构函数中使用了一次。
6.Expression:_CrtIsValidHeapPointer(pUserData)
我的情况是在类的拷贝构造函数中使用delete [] 的时候出错,是因为传入了一个没有初始化的对象。
7.DAMAGE: after Normal block (#47) at 0x00441DF0
造成上面Debug Error的原因是: delete释放的内存空间比new的空间要大,破坏了其他正常的数据,造成内存溢出;而导致这个的根本原因是内存越界操作:需要复制的内存空间比分配的内存空间要大!
解决方法: 增加分配的内存空间.
我遇到的情况是:
new的时候分配了n个字节内存,拷贝的时候拷贝了大于n个字符,delete []时就会出现这个错误
大家想想字符串在内存中的存放方式。
8.warning C4172: returning address of local variable or temporary
这个只要对引用熟悉,就会知道怎么回事。
这是将一个局部变量作为返回值传递给了引用
C++编译常见错误的更多相关文章
- PHP编译安装时常见错误解决办法,php编译常见错误
PHP编译安装时常见错误解决办法,php编译常见错误 1.configure: error: xslt-config not found. Please reinstall the libxslt & ...
- php源码编译常见错误解决方案大全
php源码编译常见错误解决方案大全http://www.cnlvzi.com/index.php/Index/article/id/143 在CentOS编译PHP5的时候有时会遇到以下的一些错误信息 ...
- Qt 4.8.6 PCL 1.8.0 VS 2010 联合编译常见错误
在Qt和PCL联合编译的过程中,会出现各种各样的错误,解决这些错误的过程真是痛苦万分,所以总结一些常见错误方便自己也方便他人.比如我们要编译PCL1.8.0中的apps中的point_cloud_ed ...
- php编译常见错误
php PHP编译安装时常见错误解决办法[转] This article is post on https://coderwall.com/p/ggmpfa configure: error: xsl ...
- PROTEL DXP原理图编译 常见错误与处理方法
一, [Warning] AUDIO.SCH Extra Pin R509-1 in Normal of part R509 [Warning] AUDIO.SCH Extra Pin R5 ...
- Android源码编译常见错误(持续更新)
本文为个人工作中处理遇到的编译问题做个小结,后续遇到新的问题,持续更新. No such file or directory: 1. 检查路径是否有问题,文件是否存在,若文件存在且路径没问题 2. 检 ...
- php源码编译常见错误解决方案
在CentOS编译PHP5的时候有时会遇到以下的一些错误信息,基本上都可以通过yum安装相应的库来解决.以下是具体的一些解决办法: checking for BZip2 support… yes ch ...
- C51-keil编译常见错误和警告处理53
keil错误:C51编译器识别错类型有三种:1.致命错误:伪指令控制行有错,访问不存在的原文:2.语法及语义错误:语法和语义错误都发生在原文件:3.警告:警告出现并不影响目标文件的产生,但执行:C_5 ...
- maven编译常见错误解决方法整理
程序包com.sun.xml.internal.ws.spi不存在 当maven项目里面有用到JDK内部的一些类,接口(如:com.sun.xml.internal.ws.spi.ProviderIm ...
- Linux学习---GCC编译常见错误
预处理错误: No such file or directory 出错原因:①包含错误:eg #include <abc.h> //abc.h为用户自行编写文件 解决方法:⑴应改为#in ...
随机推荐
- 如何用好 github 中的 watch、star、fork
http://www.jianshu.com/p/6c366b53ea41 https://www.zhihu.com/question/20431718 在每个 github 项目的右上角,都有三个 ...
- 三大linux系统对比
概述: centos作为服务器部署是第一选择.CentOS去除很多与服务器功能无关的应用,系统简单但非常稳定,命令行操作可以方便管理系统和应用,丰富的帮助文档和社区的支持. ubuntu最佳的应用领域 ...
- [samba]samba设置指定用户权限
步骤: 1.在系统中添加用户 批量添加用户和密码的方法(因为samba用户要求必须在系统中存在): for name in a b c d;do useradd $name ; echo " ...
- Dom中select练习
选择框checkbox练习 select练习 注意select的selected属性 <!DOCTYPE html> <html xmlns="http://www.w3. ...
- Android 之 Spinner 键值对的绑定(转)
很多时候我们会在下拉菜单中绑定一个值,但是 Spinner本身不提供这样的服务 于是在网上找了N久,终于找到一个简单易用的方案;废话不多说,直接上菜了 首先要定义一个Item类,有以下要注意的: ...
- 图论:Prufer编码
BZOJ1211:使用prufer编码解决限定结点度数的树的计数问题 首先学习一下prufer编码是干什么用的 prufer编码可以与无根树形成一一对应的关系 一种无根树就对应了一种prufer编码 ...
- HDU 5876 Sparse Graph BFS+set删点
Problem Description In graph theory, the complement of a graph G is a graph H on the same vertices s ...
- Ant打jar包时,参数名被修改的问题
https://blog.csdn.net/landehuxi/article/details/42678117 使用Ant打jar包后,发现jar包中的方法名会在前面自动添加了“param”前缀,导 ...
- RabbitMQ与AMQP
1. 消息队列的历史 了解一件事情的来龙去脉,将不会对它感到神秘.让我们来看看消息队列(Message Queue)这项技术的发展历史. Message Queue的需求由来已久,80年代最早在金融交 ...
- 【bzoj3362-导航难题】带权并查集
题意: 约翰所在的乡村可以看做一个二维平面,其中有N 座牧场,每座牧场都有自己的坐标,编号为1到N.牧场间存在一些道路,每条道路道路连接两个不同的牧场,方向必定平行于X 轴或Y轴.连通两座牧场之间的路 ...