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 ...
随机推荐
- 【ST表】【模板】ST表
Definition ST表是一种用于处理静态RMQ问题(无修改区间最值问题)的最快数据结构,书写方便使用简单效率便捷.其中其预处理复杂度为O(nlogn),查询复杂度为O(1).总时间复杂度为O(n ...
- 史上最全Linux提权后获取敏感信息方法
http://www.freebuf.com/articles/system/23993.html 在本文开始之前,我想指出我不是专家.据我所知,在这个庞大的区域,没有一个“神奇”的答案.分享,共享( ...
- spring全局异常处理 自定义返回数据结构
在写api接口中,正常返回和异常错误返回我们都希望很清楚的将这些信息清楚的返回给用户,出现异常情况下需要清楚的知道是参数异常还是未知异常,而不是返回一个不正确的数据结构. 所以此处只针对写api接口时 ...
- Codeforces Round #344 (Div. 2) B
B. Print Check time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- Educational Codeforces Round 6 C
C. Pearls in a Row time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- rn初体验
react-native 需要的工具 .nodejs .rn cli .xcode and as ---------------- 打开终端,切换到根路径(mac中修改npm的默认安装来源) 一.op ...
- mysql连接时权限问题 用户问题
启动工程时会连接mysql数据库,此时报错: ERROR 1044 (42000): Access denied for user 'pay'@'localhost' to database 'pay ...
- codevs 1332 上白泽慧音
1332 上白泽慧音 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大 ...
- 51Nod 1050 循环数组最大子段和 | DP
Input示例 6 -2 11 -4 13 -5 -2 Output示例 20 分析: 有两种可能,第一种为正常从[1 - n]序列中的最大子字段和:第二种为数组的total_sum - ([1-n] ...
- POJ 3087 Shuffle'm Up DFS
link:http://poj.org/problem?id=3087 题意:给你两串字串(必定偶数长),按照扑克牌那样的洗法(每次从S2堆底中拿第一张,再从S1堆底拿一张放在上面),洗好后的一堆可以 ...