AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [ASM] Aufruf von ASM – Proceduren in der System-Unit
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Chemiker · begonnen am 20. Jan 2008 · letzter Beitrag vom 20. Jan 2008
Antwort Antwort
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#1

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

  Alt 20. Jan 2008, 18:24
Hallo,

in der System – Unit ist die Procedure _LStrSetLength angegeben.

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

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

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
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: [ASM] Aufruf von ASM – Proceduren in der System-Unit

  Alt 20. Jan 2008, 19:02
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

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.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:13 Uhr.
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