AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Wie baut man sowas wie writeln/sprintf selbst ?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie baut man sowas wie writeln/sprintf selbst ?

Ein Thema von flash2009 · begonnen am 25. Dez 2008 · letzter Beitrag vom 27. Dez 2008
 
flash2009

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

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

  Alt 26. Dez 2008, 16: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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz