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++编译常见错误的更多相关文章

  1. PHP编译安装时常见错误解决办法,php编译常见错误

    PHP编译安装时常见错误解决办法,php编译常见错误 1.configure: error: xslt-config not found. Please reinstall the libxslt & ...

  2. php源码编译常见错误解决方案大全

    php源码编译常见错误解决方案大全http://www.cnlvzi.com/index.php/Index/article/id/143 在CentOS编译PHP5的时候有时会遇到以下的一些错误信息 ...

  3. Qt 4.8.6 PCL 1.8.0 VS 2010 联合编译常见错误

    在Qt和PCL联合编译的过程中,会出现各种各样的错误,解决这些错误的过程真是痛苦万分,所以总结一些常见错误方便自己也方便他人.比如我们要编译PCL1.8.0中的apps中的point_cloud_ed ...

  4. php编译常见错误

    php PHP编译安装时常见错误解决办法[转] This article is post on https://coderwall.com/p/ggmpfa configure: error: xsl ...

  5. PROTEL DXP原理图编译 常见错误与处理方法

    一, [Warning] AUDIO.SCH Extra Pin R509-1 in Normal of part R509      [Warning] AUDIO.SCH Extra Pin R5 ...

  6. Android源码编译常见错误(持续更新)

    本文为个人工作中处理遇到的编译问题做个小结,后续遇到新的问题,持续更新. No such file or directory: 1. 检查路径是否有问题,文件是否存在,若文件存在且路径没问题 2. 检 ...

  7. php源码编译常见错误解决方案

    在CentOS编译PHP5的时候有时会遇到以下的一些错误信息,基本上都可以通过yum安装相应的库来解决.以下是具体的一些解决办法: checking for BZip2 support… yes ch ...

  8. C51-keil编译常见错误和警告处理53

    keil错误:C51编译器识别错类型有三种:1.致命错误:伪指令控制行有错,访问不存在的原文:2.语法及语义错误:语法和语义错误都发生在原文件:3.警告:警告出现并不影响目标文件的产生,但执行:C_5 ...

  9. maven编译常见错误解决方法整理

    程序包com.sun.xml.internal.ws.spi不存在 当maven项目里面有用到JDK内部的一些类,接口(如:com.sun.xml.internal.ws.spi.ProviderIm ...

  10. Linux学习---GCC编译常见错误

    预处理错误: No such file or directory 出错原因:①包含错误:eg  #include <abc.h> //abc.h为用户自行编写文件 解决方法:⑴应改为#in ...

随机推荐

  1. UVALive - 5713 最小生成树

    题意: 秦始皇修路,已知n个城市的坐标以及该城市的人口数,修路的费用是两个城市之间的欧几里得距离,其中可以有一条路不用花费代价但是要求这条路连接的两个城市的人口之和A/B尽量大,其中B是修路的总费用. ...

  2. <audio>标签HTML5音乐播放器

    <audio>标签:用于在文档中表示音频内容.利用它,你可以在你的个人网站上放一首你喜欢的歌.    <audio src="music.mp3">< ...

  3. 正确理解WPF中的TemplatedParent

    (注:Logical Tree中文称为逻辑树,Visual Tree中文称为可视化树或者视觉树,由于名称不是很统一,文中统一用英文名称代表两个概念,况且VisualTreeHelper和Logical ...

  4. springboot-用logback将日志文件按等级保存到不同文件

    springboot-用logback将日志文件按等级保存到不同文件 案例: 例如项目基本包名为com.xxx,将该包下的所有日志按debug.info.warn.error等级分别保存到D:/log ...

  5. Python遍历文件夹和读写文件的方法

    需 求 分 析 1.读取指定目录下的所有文件2.读取指定文件,输出文件内容3.创建一个文件并保存到指定目录 实 现 过 程 Python写代码简洁高效,实现以上功能仅用了40行左右的代码~ 昨天用Ja ...

  6. 策略模式 C#

    策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换.策略模式让算法独立于使用它的客户而独立变化. 抽象策略角色: 策略类,通常由一个接口或者抽象类实现. 具体策略角色:包装了 ...

  7. ReaderWriterLockSlim 类

    今天在看Nop源码时,PluginManager中用到了ReaderWriterLockSlim类,于是简单做个笔记. ReaderWriterLockSlim 表示用于管理资源访问的锁定状态,可实现 ...

  8. jQuery拖拽 & 弹出层

    了解更多请查看 官网 和 API iDrag & iDialog 介绍 特点: iDialog.js依赖于jquery编写的简单易用的对话框,同时还可以通过添加css3,改变对话框的展现动画. ...

  9. bzoj 1731: [Usaco2005 dec]Layout 排队布局 ——差分约束

    Description 当排队等候喂食时,奶牛喜欢和它们的朋友站得靠近些.FJ有N(2<=N<=1000)头奶牛,编号从1到N,沿一条直线站着等候喂食.奶牛排在队伍中的顺序和它们的编号是相 ...

  10. [Unity]扩展Hierachry的右键菜单

    游戏制作到一定阶段后,一定会出现一些GameObject的"模板".比如一个敌人一定会有一个"Enemy Behaviour"."Box Collid ...