1. 思想:将内存池分为块,首先定义每个块的字节数,和内存池的总字节数,用总字节数除以每个块的字节数得到块数 2. 内存池,实际上就是一个数组 3. 内存管理块,实际也是一个数组,总元素个数为内存块数,每个元素对应一个内存块,该元素非零时表示该内存块没有被占用 4. 将第一步中的信息用数组保存起来, ...
分类:
其他好文 时间:
2016-11-04 23:52:25
阅读次数:
381
问题来源: http://www.cnblogs.com/del/archive/2008/07/30/1039045.html#1272783 在编译器看来, 重载函数根本就是完全不同的几个函数, 当然就会有不同的函数地址; 我们用常规方法获取的地址只是第一种重载的地址. 代码文件: http:/ ...
分类:
其他好文 时间:
2016-11-03 22:58:33
阅读次数:
570
首先记住一句话:对象思维:万物皆对象! 准确描述python对象,需要从三个维度“身份、类型、值”。 >>> 520 520 >>> 55555555555555555555555555555 55555555555555555555555555555L >>> 3.1415926 3.141592 ...
分类:
编程语言 时间:
2016-10-26 00:52:27
阅读次数:
177
多线程编程基础知识 http://www.cnblogs.com/cy163/archive/2006/11/02/547428.html 当前流行的Windows操作系统能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任 ...
分类:
编程语言 时间:
2016-10-23 23:34:13
阅读次数:
277
C++代码部分 E代码和截图部分 代码如下 .版本 2 .子程序 安装, 逻辑型, 公开, 安装APIHOOK.参数 动态链接库路径, 文本型, , 欲截获的函数名所在动态链接库的路径.参数 函数名, 文本型, , 欲截获的函数名.参数 新函数地址, 整数型, , 回调子程序指针地址.可以用 到整数 ...
1.为了能找到dll的函数地址,生成dll时需要将其中的函数声明为C函数(extern "C"): #ifndef __MYDLL_H#define __MYDLL_H #ifdef MYDLL_EXPORTS#define MYDLL __declspec(dllexport)#else#defi ...
分类:
其他好文 时间:
2016-09-06 06:42:23
阅读次数:
150
函数调用时候:1.栈针寄存器espebpesp增大的时候栈空间减小,减小的时候栈空间增大,ebp指向栈基址不变。2.调用函数的时候参数由右至左压栈,栈空间方向是从高地址(栈底)到低地址(栈顶),然后压入返回地址,函数地址入栈后,EBP入栈,然后把当前ESP的值给EBP,对应的汇编指..
分类:
其他好文 时间:
2016-08-26 15:35:49
阅读次数:
148
这点是与C语言不一样的地方,以前我一直都没有明白这一点,所以总是不明白:函数地址再取地址算怎么回事? 在学习Delphi的时候,一个很好的建议是和C/C++去类比着学习,从指针,到内存管理,到数组,到面向对象……各个方面,都是有很多可以相似和或者也有不同的方,类比着学习,一方面加深对Delphi的理 ...
??
1、 进程的地址空间
在32位操作系统中,进程的地址空间为0到4GB,
示意图如下:
图1
这里主要说明一下Stack和Heap:
Stack空间(进栈和出栈)由操作系统控制,其中主要存储函数地址、函数参数、局部变量等等,所以Stack空间不需要很大,一般为几MB大小。
Heap空间的使用由程序员控制,程序员可以使用malloc、n...
分类:
移动开发 时间:
2016-07-10 18:56:21
阅读次数:
275
多态实现的关键 虚函数表 每一个有虚函数的类(或有虚函数的类的派生类)都有一个虚函数表,该类的任何对象中都放着虚函数表的指针。虚函数表中列出了该类的虚函数地址。多出来的4个字节就是用来存放虚函数表的地址的。 多态的函数调用语句被编译成一系列根据基类指针所指向的(或基类引用所引用的)对象中存放的虚函数 ...
分类:
其他好文 时间:
2016-07-09 10:37:46
阅读次数:
131