Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Inline Assembler und überladene Prozeduren?

  Alt 6. Aug 2005, 20:23
Zitat:
Schade. Hast Du eine verlässliche Quelle für diese Aussage, oder ist das die Essenz aus Deinen Bemühungen?
Ist nicht nur meine Meinung ... an anderen Stellen wurde mir mittler Weile "bestätigt", daß der Delphi-Compiler in der ASM-Umgebung nichts zur Verfüguns stellt, womit man sagen kann, ob nun die 1., oder z.B. die 3. Implementierung einer überladenen Funktion/Prozedur verwenden soll.
Es gibt allerdings andere Sprachen, wo man derartiges angeben kann.

Irgendwo im DF existiert z.B. einer dieser Beiträge wo mir gesagt wurde, daß Borland's Delphi nicht damit klar kommt.



Das mit dem "Alias" bei der External-Deklaration für DLL's wußte ich auch schon, aber dieses funktioniert halt nur dann, wenn man die entsprechende Funktion z.B. in eine DLL auslagert und beim einbinden nicht wieder überlagert.

Innerhalb eines Programms kommt man halt nicht weit damit.

Dazu kommt dann noch, daß ich zwar unter Umständen einige Funktionen in eine DLL auslagere, und die überladenen Funktionen natürlich über andere Namen exportiere, aber dann wieder mit dem originalen Namen improtiere.



Im Endeffekt bleiben dann leider nur die 2 übrigen Möglichkeiten übrig:
* entweder man verzichtet auf das Überladen,
aber ofmals läßt es sich halt nicht vermeiden.
* oder man besorgt sich per Pascal den gewünschten Prozedur-Pointer,
speichert diesen in einer Konstante/Variable
und springt dann diese Prozedur/Funktion über den gepeicherten wert an.

wobei letzteres auch nicht immer funktioniert ... vorallem bei bestimmten Funktionen/Prozeduren und dann auch noch bei Methoden...





Und das Problemchen mit den [ ] ist mir auch schon schmerzlich aufgefallen, allerdings bei Variablen.

In meinem Fall wollte ich
MOV EAX, &Variable
haben, aber delphi machte wegen der Variable automatisch die Klammer drum
MOV EAX, [&Variable]
was dann 'nen netten Fehler verursachte, der mich dann 'ne ganze Weile verrückt gemacht hatte,
bis ich dann durch Zufall im IM CPU-Fenster darüber gestolpert bin
Es ist schon komisch, wie Delphi immer wieder versucht intelligent zu sein
und dann selbstständing vieles verändert.

Mit einigen "gut gemeinten" Optimierungen hab ich auch manchmal zu kämpfen, vorallem mit denen, welche sich nicht abschalten lassen -.-''





Zitat:
Wenn der Compiler typisierte Konstanten nicht wie globale Variable behandeln würde...
das ist ja auch noch sowas gemeines (manchmal)
aber ich hab mittler Weile wenigstens einen Weg gefunden, wie man unter Umständen dennoch eine untypisierte Konstante erstellen kann, die dennoch in einem gewissen Maße typisiert ist ^^
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat