Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   __declspec( naked ) in Delphi? (https://www.delphipraxis.net/162194-__declspec-naked-delphi.html)

Zacherl 11. Aug 2011 16:09

Delphi-Version: 2010

__declspec( naked ) in Delphi?
 
Hallo zusammen,

gibt es in Delphi eine mit __declspec( naked ) vergleichbare Direktive, welche verhindert, dass der Compiler automatisch ein Stackframe anlegt?

Viele Grüße
Zacherl

sirius 11. Aug 2011 16:39

AW: __declspec( naked ) in Delphi?
 
meinst du die Direktive {$W-} bzw. {$STACKFRAMES OFF} ?

SirThornberry 11. Aug 2011 16:42

AW: __declspec( naked ) in Delphi?
 
du meinst aber nicht etwa die Aufrufkonvention cdecl? __declspec kenn' ich in C nur in Verbindung mit Aufrufkonvention.

sirius 11. Aug 2011 16:45

AW: __declspec( naked ) in Delphi?
 
Zitat:

Zitat von SirThornberry (Beitrag 1116298)
du meinst aber nicht etwa die Aufrufkonvention cdecl? __declspec kenn' ich in C nur in Verbindung mit Aufrufkonvention.

http://docwiki.embarcadero.com/RADSt...eclspec(naked)

DeddyH 11. Aug 2011 16:52

AW: __declspec( naked ) in Delphi?
 
Zitat:

Diese Seite enthält momentan noch keinen Text. Du kannst diesen Titel auf den anderen Seiten suchen, in den zugehörigen Logbüchern suchen oder dieser Seite bearbeiten.
Nicht sehr informativ :roll:

sirius 11. Aug 2011 16:58

AW: __declspec( naked ) in Delphi?
 
Zitat:

Zitat von DeddyH (Beitrag 1116305)
Zitat:

Diese Seite enthält momentan noch keinen Text. Du kannst diesen Titel auf den anderen Seiten suchen, in den zugehörigen Logbüchern suchen oder dieser Seite bearbeiten.
Nicht sehr informativ :roll:

Der Codeformatierer der DP hat die schließende Klammer der url einfach nicht mit in die url-Tags gebastelt. :oops:

Zacherl 11. Aug 2011 17:00

AW: __declspec( naked ) in Delphi?
 
Doch doch ich meine schon die Aufrufkonvention __declspec, wie man sie von C her kennt. Habe jetzt herausgefunden, dass Delphi nur dann kein Stackframe anlegt, wenn man folgendes macht:
Delphi-Quellcode:
procedure MyNakedProc;
asm

end;
Also ist man da scheinbar auf reinen Assembler Code beschränkt.

sirius 11. Aug 2011 17:11

AW: __declspec( naked ) in Delphi?
 
Ich welchen Fällen kommt es denn vor, dass man keinen Stackframe braucht?

Delphi nimmt bei mir den Stackframe sowieso weg, wenn er nicht von nöten ist.

himitsu 11. Aug 2011 17:32

AW: __declspec( naked ) in Delphi?
 
Zitat:

Zitat von sirius (Beitrag 1116311)
Delphi nimmt bei mir den Stackframe sowieso weg, wenn er nicht von nöten ist.

Zitat:

{$W-} bzw. {$STACKFRAMES OFF}
-, bzw. OFF ist ja auch die Standardeinstellung.

ehX 11. Aug 2011 22:32

AW: __declspec( naked ) in Delphi?
 
Zitat:

Doch doch ich meine schon die Aufrufkonvention __declspec, wie man sie von C her kennt. Habe jetzt herausgefunden, dass Delphi nur dann kein Stackframe anlegt, wenn man folgendes macht:
markieren
Delphi-Quellcode:
procedure MyNakedProc;
asm

end;
Also ist man da scheinbar auf reinen Assembler Code beschränkt.
Dann macht es Delphi ja hier auch genau richtig? Denn eine __declspec(naked) Konvention ist ja dafür da, um sich seinen eigenen Prolog/Epilog-Code in Assembler für die Funktion zu schreiben:

Zitat:

Zitat von http://msdn.microsoft.com/en-us/library/h5w10wxs%28v=vs.80%29.aspx
For functions declared with the naked attribute, the compiler generates code without prolog and epilog code. You can use this feature to write your own prolog/epilog code sequences using inline assembler code.

Ich frage mich allerdings, rein interessehalber...wofür brauchst du das? Normalerweise brauchen das ja (fast) nur die Treiber-Schreiber. Und das geht mit Delphi ja eh nicht :-)

P.S. Achja.btw...ich bin blackFin...ich habe hier "ausversehen" meinen Account gelöscht...fragt nicht, das "Warum" lässt sonst alle hier an meinem Hirn zweifeln :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz