自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (20)
  • 收藏
  • 关注

原创 strlen与sizeof的区别

strlen是寻找从指定地址开始,到出现的第一个0之间的字符个数,他是在运行阶段执行的,而sizeof是得到数据的大小,在这里是得到字符串的容 量。所以对同一个对象而言,sizeof的值是恒定的。string是C++类型的字符串,他是一个类,所以sizeof(s)表示的并不是字符串的长 度,而是类string的大小。strlen(s)根本就是错误的,因为strlen的参数是一个字符指针,如果想用s

2008-05-20 11:21:00 417

转载 ofstream/ifstream 文本/二进制 方式 读入/写出 数据方法

文件 I/O 在C++中比烤蛋糕简单多了。 在这篇文章里,我会详细解释ASCII和二进制文件的输入输出的每个细节,值得注意的是,所有这些都是用C++完成的。  一、ASCII 输出   为了使用下面的方法, 你必须包含头文件(译者注:在标准C++中,已经使用取代,所有的C++标准头文件都是无后缀的。)。这是 的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, 已经被包含了, 所以你不

2008-05-20 10:18:00 1082

转载 VC6工程转换到VC8(转载)

1、缺少libc.lib解决这个问题的方法是去掉链接到libc.lib,具体地点:项目-〉属性-〉配置属性-〉链接器-〉忽略特定库。2、unresolved external symbol __iob这个__iob找不到的问题费 了我大部分的时间。跟踪到stdio.h文件,发现那里有个关于iob的宏,终于搞定。加入一句话到.cpp文件中:extern "C" { FILE _iob[3] =

2008-05-19 12:32:00 564

转载 InvokeHelper( ... );函数的作用

InvokeHelper( ... );函数的作用当在项目中插入ActiveX控件ClassWizard生成的CWnd的派生类C++类中,可以看到其成员函数的代码中都有对 InvokeHelper函数的调用,InvokeHelper函数的第一个参数都和对应的属性或方法在ActiveX控件中的分发(dispatch) ID(标识ActiveX控件的方法或属性的)相对应。通过查看Act

2008-05-17 10:43:00 3601 2

转载 浅谈C++中的内存管理(二)

这里还要说一件事情,就是在第一个程序当 中,无论是debug版本还是release版本。执行完那个if语句以后,系统都是不会真正的把l清除掉,l只是k的一个别名。上面的程序是这样写的, 用了*j=&i这样一句负值语句,而别名在MSDN中的解释与引用是相同的,所以也可以这样理解,int i=10; int &j=i;与上面的相同。不要去想上面这些程序了,大家再看看下面这个。

2008-04-16 15:20:00 395

转载 控制C++的内存分配

 在嵌入式系统中使用C++的一个常见问题是内存分配,即对new 和 delete 操作符的失控。  具有讽刺意味的是,问题的根源却是C++对内存的管理非常的容易而且安全。具体地说,当一个对象被消除时,它的析构函数能够安全的释放所分配的内存。   这当然是个好事情,但是这种使用的简单性使得程序员们过度使用new 和 delete,而不注意在嵌入式C++环境中的因果关系。并且,在嵌入式系统

2008-04-16 15:20:00 513

转载 浅谈C++中的内存管理(一)

摘要:   大家都知道变量的生存周期这个概念,可是有的时候变量生存周期已经结束,但是所分配的那块内存空间还是存在的。文章举了四个不同的例子,来说明这其中的原因。  前言:   前一段时间在一个好友的的博客论 坛上看到他学习C++时遇到的一小点问题,是关于C++中最基本的内存分配方面的。其实对于内存这东西,除了知道我自己用的是256M的内存以外,我也不 太清楚他到底里面是怎么工作的。看了大师们的

2008-04-16 15:19:00 448

原创 明晰C++内存分配的五种方法的区别

在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。   栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。   堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。  

2008-04-16 15:18:00 376

原创 踏入C++中的雷区——C++内存管理详解(三)

6、有了malloc/free为什么还要new/delete?  malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。   对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构 函数。由于malloc/free是库函数而不是运算符,不在

2008-04-16 15:16:00 445

转载 踏入C++中的雷区——C++内存管理详解(四)

8、malloc/free 的使用要点  函数malloc的原型如下: void * malloc(size_t size);   用malloc申请一块长度为length的整数类型的内存,程序如下: int *p = (int *) m

2008-04-16 15:16:00 347

转载 踏入C++中的雷区——C++内存管理详解(二)

4、指针参数是如何传递内存的?  如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1中,Test函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,为什么? void GetMemory(char *p, int num){ p = (char *)malloc(si

2008-04-16 15:15:00 353

转载 菜鸟也能搞定C++内存泄漏

C++内存分配与释放均由用户代码自行控制,灵活的机制有如潘多拉之盒,即让程序员 有了更广的发挥空间,也产生了代代相传的内存泄漏问题。对于新手来说,最常犯的错误就是new出一个对象而忘记释放,对于一般小应用程序来说,一点内存空 间不算什么。但是当内存泄漏问题出现在需要24小时运行的平台类程序上的时候,将会使系统可用内存飞速减少,最后耗尽系统资源,导致系统崩溃。   所以学会如何防止并检查内存泄漏,是

2008-04-16 15:12:00 339

转载 Bjarne:如何对付内存泄漏?

写出那些不会导致任何内存泄漏的代码。很明显,当你的代码中到处充满了new 操作、delete操作和指针运算的话,你将会在某个地方搞晕了头,导致内存泄漏,指针引用错误,以及诸如此类的问题。document.write(""); 这和你如何小心地对待内存分配工作其实完全没有关系:代码的复杂性最终总是会超过你能够付出的时间和努力。于是随后产生了一些 成功的技巧,它们依

2008-04-16 15:11:00 320

转载 C++中动态内存分配引发问题的解决方案(二)

首先,大家要知道,C++类有以下这些极为重要的函数:  一:复制构造函数。  二:赋值函数。   我们先来讲复制构造函数。什么是复制构造函数呢?比如,我们可以写下这样的代码:Wrong test1(test2);这是进行初始化。我们知道,初始化对象要用构造函数。可这儿呢?按理说,应该有声明为这样的构造函数:Wrong(const Wrong &);可是,我们并没有定义这个构造函数呀?答案是,C++

2008-04-16 15:10:00 426

转载 C++中动态内存分配引发问题的解决方案(一)

假设我们要开发一个String类,它可以方便地处理字符串数据。我们可以在类中声明一个数组,考虑到有时候字符串极长,我们可以把数组大小设为200, 但一般的情况下又不需要这么多的空间,这样是浪费了内存。对了,我们可以使用new操作符,这样是十分灵活的,但在类中就会出现许多意想不到的问题,本文 就是针对这一现象而写的。现在,我们先来开发一个Wrong类,从名称上看出,它是一个不完善的类。的确,我们要刻

2008-04-16 15:09:00 361

转载 浅谈C/C++内存泄漏及其检测工具(三)

 使用BoundsChecker检测内存泄漏:  BoundsChecker采用一种被称为 Code Injection的技术,来截获对分配内存和释放内存的函数的调用。简单地说,当你的程序开始运行时,BoundsChecker的DLL被自动载入进 程的地址空间(这可以通过system-level的Hook实现),然后它会修改进程中对内存分配和释放的函数调用,让这些调用首先转入它的代码,然后 再执行

2008-04-16 15:07:00 557

转载 浅谈C/C++内存泄漏及其检测工具(二)

检测内存泄漏的关键是要能截获住对分配内存和释放内存的函数的调用。截获住这两个函数,我们就能跟踪每一块内存的生命周期,比如,每当成功的分配一块内存 后,就把它的指针加入一个全局的list中;每当释放一块内存,再把它的指针从list中删除。这样,当程序结束的时候,list中剩余的指针就是指向那 些没有被释放的内存。这里只是简单的描述了检测内存泄漏的基本原理,详细的算法可以参见Steve Maguire

2008-04-16 15:06:00 533

转载 浅谈C/C++内存泄漏及其检测工具(一)

对于一个c/c++程序员来说,内存泄 漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较成

2008-04-16 15:03:00 459

原创 nmake使用的makefile

nmake使用的makefile描述块描述块是后面可跟有命令块的依赖项行:targets... : dependents...commands...依赖项行指定一或多个目标以及零或多个依赖项。目标必须位于行首。用冒号 (:) 将目标和依赖项分开;允许使用空格或制表符。若要拆分行,请在目标或依赖项后面使用反斜杠 (/ )。如果目标不存在、目标的时间戳比依赖项早或者目标是伪目标,则 NMAKE 执行命

2008-04-11 10:20:00 3319

原创 CL.exe的全部命令

 CL.exe的全部命令/C:在预处理输出中保留注释语句/c:只编译,不连接,相当于在"Build"菜单下选择了"Compile"/D:定义常量和宏,与源程序里的#define 有相同效果/E:预处理C、C++源文件,将源文件中所有的预编译指令及宏展开,将注释去掉,然后将预处理器的输出拷贝至标准输出设备输出,并且在每个文件的开头和末尾加入#line/EH:指定编译器用何种异常处理模型/EP:同/E

2008-04-11 10:19:00 993

原创 POA简介

1 POA简介  (1)POA结构  每一个POA都要维护一个活动对象映射(Active Object Map),它包含一个个对应于服务的对象ID,活动对象映射是一张将激活对象映射到相应服务的表。对象ID是一个由POA和用户提供的实现使用的一个值,用来标识一个特定的抽象的CORBA对象。对象ID的值可能由POA或实现来赋值和管理,对象ID的值由引用封装并对客户方隐藏。对象ID没有标准格式,它们被P

2008-04-11 10:18:00 6094

转载 CORBA规范定义的几个常用基本方法

1. 编码之前(研究和分析) 1.1 摸索经验 1.1.1 了解用户 1.1.2 了解管理部门 1.1.3 了解环境 1.1.4 里程碑标记 1.2 指定蓝图和增强信心 1.2.1 定义产品 1.2.2 分析需求 1.2.3 创建计划 1.2.4 提出提议 1.2.5 里程碑标记 1.3 着手第1项工作 1.3.1 组建团队 1.3.2 提供培训 1.3.3 鼓励协作 1.3.4 里程碑标记 

2008-04-11 10:17:00 599

转载 CORBA 入门

CORBA 是什么 公用对象请求代理(调度)程序体系结构(Common Object Request Broker Architecture),缩写为 CORBA,是对象管理组织(Object Management Group)对应当今快速增长的软硬件的协同工作能力的要求而提出的方案。简而言之,CORBA 允许应用程序和其他的应用程序通讯,而不论他们在什么

2008-04-10 18:00:00 453

原创 JVM is not suitable for this product 的第二种解决方法

    第一种是设置path到eclipse所支持的jdk版本目录下,网上到处是解决方法,我就不多说了,我主要说一下第二种解决方法,有时候其他软件不支持eclipse所需要的jdk版本,只能采用下面的方法。 其实很简单,找到eclipse的安装目录下有一个eclipse.ini文件,在第一行插入下列两行代码: -vm java-home/bin/java.exe java-home是支持e

2008-04-10 17:45:00 4715

DTL698 电能信息采集与管理系统-面向对象的互操作性数据交换协议》00.doc

点用终稿《电能信息采集与管理系统-面向对象的互操作性数据交换协议》,DTL698 电能信息采集与管理系统-面向对象的互操作

2020-10-21

ida pro 5.0 中文版06_part02

ida pro 5.0 中文版06_part02,<br>上次的part6有问题,请下载这个。

2008-05-26

ida pro 5.0 中文版06_part01

ida pro 5.0 中文版06_part01,<br>上次的part6有问题,请下载这个。

2008-05-26

Softice教程

Softice教程,Softice教程

2008-05-14

OllyDB入门教程

OllyDB入门教程,OllyDB入门教程。

2008-05-14

脱壳的艺术

脱壳的艺术,脱壳的艺术。

2008-05-14

逆向编译技术

逆向编译技术,逆向编译技术。

2008-05-14

ida pro 5.0 中文版 03和05 part03

上次上传的part03和part05有问题,现在重新上传part03和part05

2008-05-14

ida pro 5.0 中文版 03和05 part02

上次上传的part03和part05有问题,现在重新上传part03和part05

2008-05-14

ida pro 5.0 中文版 03和05 part01

上次上传的part03和part05有问题,现在重新上传part03和part05

2008-05-14

OllyDBG OllyICE 中文版

强大的调试工具,强大的调试工具,

2008-04-30

ida pro 5.0 中文版 07

很强的反汇编工具,支持代码分析。

2008-04-30

ida pro 5.0 中文版 06(这个文件是坏的!)

很强的反汇编工具,支持代码分析。

2008-04-30

ida pro 5.0 中文版 05(这个文件是坏的!)

这个文件有问题,请下载新上传的ida pro 5.0 中文版 03和05。 地址: http://download.csdn.net/source/454722 http://download.csdn.net/source/454730 http://download.csdn.net/source/454735

2008-04-30

ida pro 5.0 中文版 04

很强的反汇编工具,支持代码分析。

2008-04-30

ida pro 5.0 中文版 03(这个文件是坏的!)

这个文件有问题,请下载新上传的ida pro 5.0 中文版 03和05。 地址: http://download.csdn.net/source/454722 http://download.csdn.net/source/454730 http://download.csdn.net/source/454735

2008-04-30

ida pro 5.0 中文版 01

强大的反汇编工具,方便代码分析。

2008-04-30

UMLStudio 7.2

只有3M的UML工具,支持java、c++、IDL和逆向工程。

2008-04-30

Sun Java培训教程中文版

Sun Java培训教程中文版.pdf

2008-04-15

C++ 内存管理算法和实现

C++ 内存管理算法和实现.rar

2008-04-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除