Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [ASM] Aufruf von ASM – Proceduren in der System-Unit (https://www.delphipraxis.net/107003-%5Basm%5D-aufruf-von-asm-%96-proceduren-der-system-unit.html)

Chemiker 20. Jan 2008 17:24


[ASM] Aufruf von ASM – Proceduren in der System-Unit
 
Hallo,

in der System – Unit ist die Procedure _LStrSetLength angegeben.

Wenn man in einer ASM function diese dann Aufrufen will mit:

Delphi-Quellcode:
CALL System._LStrSetLength
Dann kann der Compiler die Funktion nicht finden.
Wenn man stattdessen:

Delphi-Quellcode:
CALL System.@LStrSetLength
Dann findet der Compiler auch die Procedure in der System - Unit

Wenn man aber eigene Routinen aufrufen will in einer anderen Unit, so funktioniert das nur mit dem Unterstrich.

Delphi-Quellcode:
CALL ASMRotinen.@StrLaenge    //Compiler findet die Procedure nicht.
CALL ASMRotinen._StrLaenge     //  Alles OK
Meine Frage ist jetzt, warum ist das so?

Bis bald Chemiker

himitsu 20. Jan 2008 18:02

Re: [ASM] Aufruf von ASM – Proceduren in der System-Unit
 
die .DCUs der System und SysInit sind nicht wirklich aus den zugehörigen .PAS erstellt worden.
viele der Funktion/Typen darin werden eigentlich vom Compiler behandelt und stehn da nur drin, damit sie überhaupt irgendwo sichtbar sind.

die entpsrchenden .PAS sind eher Dummy-Units, welche aufzeigen was in etwa in diesen Unit's vorkommt.

also die Namen darin nicht ganz ersnt nehmen ... PS: und daß viele ohne dn führenden Unterstrich zugänglich sind, hast du ja schon bemerkt :angel2:

Der einfachste Weg ist bei sowas nachzusehn was der Compiler bei SetLength aufruft ...
wobei SetLength nicht gleich SetLength ist ... siehe LStrSetLength für lange AnsiStrings.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 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