M
moshengren
Unregistered / Unconfirmed
GUEST, unregistred user!
delphi 写的一个 dll,内有一函数类似,该函数有较多的局部变量,delphi格式是这样子的:
function xxx: Integer;stdcall
var
x1: integer;
x2: integer;
.......
begin
.......
end;
没想到,反汇编一看,一般我所知道局部变量申请都是类似 sub esp, 1C //按变量数确定
可是delphi并不都是这样,这次的结果是这样:
mov ecx,6
@loop:
push ecx
dec ecx
test ecx,ecx
jnz @loop
//居然是这样申请栈的,我的天啊,正好ecx我是其他函数传进来要利用的,这下全被搞乱了
大家有没有办法让delphi强制使用 sub esp, 1C 这样去编译阿
function xxx: Integer;stdcall
var
x1: integer;
x2: integer;
.......
begin
.......
end;
没想到,反汇编一看,一般我所知道局部变量申请都是类似 sub esp, 1C //按变量数确定
可是delphi并不都是这样,这次的结果是这样:
mov ecx,6
@loop:
push ecx
dec ecx
test ecx,ecx
jnz @loop
//居然是这样申请栈的,我的天啊,正好ecx我是其他函数传进来要利用的,这下全被搞乱了
大家有没有办法让delphi强制使用 sub esp, 1C 这样去编译阿