获取函数的大小
来源:互联网 发布:sql server有什么优势 编辑:程序博客网 时间:2024/06/08 01:31
原文出处:http://bbs.bccn.net/thread-322155-1-5.html
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
pFunction=function():Integer;
var
Form1: TForm1;
function code():Integer;
function codeEnd():Integer;
implementation
{$R *.dfm}
function code():Integer;
var
i,j,k:Integer;
begin
i:=10;
j:=50;
k:=i+j;
result:=k;
end;
function codeEnd():Integer; begin
end;
procedure TForm1.Button1Click(Sender: TObject);
var
func1,func2,func3:pFunction;
myCode:array of char;
codeSize:Integer;
i:Integer;
begin
ASM
PUSH EAX;
PUSH EBX;
LEA EAX,codeEnd; {获取codeEnd函数的地址}
LEA EBX,code; {获取code函数的地址}
SUB EAX,EBX; {用codeEnd函数的地址减code函数的地址则可得出code函数的}
{大小,因为codeEnd函数刚好位于codeEnd函数的下面。}
MOV codeSize,EAX;{把code函数的大小保存在变量codeSize中}
POP EBX;
POP EAX;
END;
SetLength(myCode,codeSize);
ASM
PUSH ESI;
PUSH EDI;
CLD;
LEA ESI,byte ptr[code];
MOV EDI,myCode;
MOV ECX,codeSize;
REP MOVSB;
POP EDI;
POP ESI;
END;
for i:=0 to HIGH(myCode)-1 do begin
Memo1.Text:=Memo1.Text+Format('$%x',[Integer(myCode[i])]);
end;
func3:=pFunction(myCode);
i:=func3;
Edit1.Text:=IntToStr(i);
end;
end.
- 获取函数的大小
- GetIconInfo函数获取ICON的大小
- \t\twindows 获取文件的大小 函数
- 获取文件夹大小(PHP函数)
- PHP获取文件夹大小函数
- 获取图片文件原始大小的API函数
- 获取文件夹大小的函数-已在VC验证
- php获取远程文件内容与大小的函数代码
- PB获取图片文件原始大小的API函数
- cocos中各种获取大小尺寸的函数
- 用文件函数获取文件的大小代码片段
- 用文件操作函数获取文件的大小,行数
- C语言用fstat函数获取文件的大小
- 获取文件夹的大小
- 获取硬盘的大小
- 获取文件夹的大小
- 获取缓冲区的大小
- 获取窗口的大小
- 一个用C#写得读Excel表格的类,效率高,可重用
- 大“内”高手【共享内存与线程局部存储】
- CEGUI 重载Window与WindowRenderer
- QT精彩实例分析第5章-0
- 基于Authorware课件的具有导航功能的ActiveX控件的设计和实现
- 获取函数的大小
- 开源,选择Google Code还是Sourceforge【转】
- POJ1236 强连通分支(strongly connected component _kosaraju algorithm)
- jdbctemplate的使用
- 转:GNU Make 中文手册v3.8
- 成大事必备9种能力、9种手段、9种心态
- RSA算法及其java雏形
- Charlie Sheen live show bombs in Detroit
- asp.net 生成静态页面的三种方式优劣