Einzelnen Beitrag anzeigen

flash2009

Registriert seit: 15. Dez 2008
11 Beiträge
 
#14

Re: Wie baut man sowas wie writeln/sprintf selbst ?

  Alt 26. Dez 2008, 17:49
ok hier mal eine grafik da ich das nicht so schön beschreiben kann

http://img518.imageshack.us/img518/2712/hukiw1.png

der rechte rote pfeil geht auch über die dll zurück

Delphi-Quellcode:
function test(Buffer:Pointer;Format1:PChar;const arg:Array of Const):Integer;cdecl;
begin
  Result := SprintfOrg(Buffer,Format1,arg);
end;
geht

Delphi-Quellcode:
function test(Buffer:Pointer;Format1:PChar;const arg:Array of DWord):Integer;cdecl;
begin
  Result := SprintfOrg(Buffer,Format1,arg);
end;
geht


Funktionsaufruf:
PUSH EAX ; /<%s> = " [17:29:26]"
PUSH EBX ; |<%s> = "abc"
PUSH 004488D8 ; |format = "%s%s"
PUSH ECX ; |s = 0017F388
CALL EBP ; \sprintf

Stack wenn sprintf gecallt ist:
0041F27E /CALL to sprintf from 0041F27C
0017F388 |s = 0017F388
004488D8 |format = "%s%s"
00447648 |<%s> = "abc"
08F12030 \<%s> = " [17:29:26]"

done thx @all
greetz flash
  Mit Zitat antworten Zitat