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. 爬虫实例——爬取煎蛋网OOXX频道(反反爬虫——伪装成浏览器)

    煎蛋网在反爬虫方面做了不少工作,无法通过正常的方式爬取,比如用下面这段代码爬取无法得到我们想要的源代码. import requests url = 'http://jandan.net/ooxx' ...

  2. FileProvider记录下

    Mark下FileProvider,阿里巴巴Android开发手册有如下要求:[强制]应用间共享文件时,不要通过放宽文件系统权限的方式去实现,而应使用FileProvider. 知识点记录:1. An ...

  3. Leetcode 144.二叉树的前序遍历

    1.题目描述 给定一个二叉树,返回它的 前序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 2.解法 ...

  4. python读书笔记-《A Byte of Python》中文第三版后半部分

    编辑器:windows,linux 不要用notepad,缩进糟糕 -------------- 5.18缩进 同一层次的语句必须有相同的缩进.每一组这样的语句称为一个块. i = 5 2  prin ...

  5. git--------------bug修复流程

    当前所有分支: master:主分支 test:测试分支 zs:开发人员分支 ls:开发人员分支 场景:zs正在开发A模块功能,线上环境产生了一个bug. zs的操作流程(当前分支为zs分支): 1. ...

  6. Java nio和io

    当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异.它们的使用场景,以及它们如何影响您的代 ...

  7. 【C++ STL】容器概要

    1.容器的共通能力 1.  所有的容器都是“value”语意,而不是“reference”语意.容器进行元素的安插操作时,内部实施的都是拷贝操作,置于容器内.因此STL容器的每个元素都必须能被拷贝.如 ...

  8. Item 2---遇到构造器具有多个参数时,要考虑用构建器;Builder模式

    问题,面对这种一个构造器具备多个参数的问题,现有的做法是使用重叠构造器的方式,该方式存在的问题: public class NutritionFacts { private final int ser ...

  9. HDU 1175 连连看 (深搜+剪枝)

    题目链接 Problem Description "连连看"相信很多人都玩过.没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子.如果某两个相同的棋子,可以 ...

  10. 25、如何实现redis集群?

    由于Redis出众的性能,其在众多的移动互联网企业中得到广泛的应用.Redis在3.0版本前只支持单实例模式,虽然现在的服务器内存可以到100GB.200GB的规模,但是单实例模式限制了Redis没法 ...