Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Assembler Files einbinden (https://www.delphipraxis.net/144506-assembler-files-einbinden.html)

gammatester 21. Dez 2009 15:17

Re: Assembler Files einbinden
 
So kann das eigentlich gar nicht assembliert werden. In
Code:
FuncBPROC
FuncBENDP
fehlen Leerzeichen. Selbst wenn die drin sind, müssen auf jeden Fahll rets rein (sonst rennt die CPU ins Nirvana). Bei mir läuft dieser Code (assembliert mit ml /c test.asm) ohne Probleme in Delphi5 und Delhi6:
Code:
TITLE Test.asm

.686P
.XMM
.MODEL FLAT


PUBLIC FuncA
PUBLIC FuncB


.CODE FuncA_Code
FuncA PROC
ret
FuncA ENDP


.CODE FuncB_Code
FuncB PROC
ret
FuncB ENDP

END
Deklariert in Delphi als
Delphi-Quellcode:
procedure funca; external;
procedure funcb; external;
{$l test.obj}

FrEEzE2046 21. Dez 2009 15:20

Re: Assembler Files einbinden
 
Zitat:

Zitat von gammatester
So kann das eigentlich gar nicht assembliert werden. In
Code:
FuncBPROC
FuncBENDP
fehlen Leerzeichen. Selbst wenn die drin sind, müssen auf jeden Fahll rets rein (sonst rennt die CPU ins Nirvana). Bei mir läuft dieser Code (assembliert mit ml /c test.asm) ohne Probleme in Delphi5 und Delhi6:

Ja, schon gut. Das habe ich doch hier nur schnell exemplarisch hingehauen.
Der Compiler hätte sonst schon gemeckert.

Das Problem ist derweil aber gelöst:
Und zwar hatte ich dem Delphi-Linker mitgeteilt, dass er bitte C-Objekt-Dateien erzeugen soll. Offensichtlich ist dieses Feature eher unausgereift.

gammatester 21. Dez 2009 15:30

Re: Assembler Files einbinden
 
Verstehe nicht ganz was Du machen willst: Der Delphi-Linker soll aus dem ASM/Obj-Files dann C-Obj-Files machen?? (Normalerweiser macht ein Linker keine Obj-Files.)

Wie auch immer: wenn's C bzw. Borland C++ sein soll, muß man wohl die besondere Namenskonventionen von C beachten bzw das Reinmangeln von Parametertypen etc. Dabei kann nun wirklich nicht weiterhelfen; weiß nur, daß es das gibt.

FrEEzE2046 21. Dez 2009 15:44

Re: Assembler Files einbinden
 
Zitat:

Zitat von gammatester
Verstehe nicht ganz was Du machen willst: Der Delphi-Linker soll aus dem ASM/Obj-Files dann C-Obj-Files machen?? (Normalerweiser macht ein Linker keine Obj-Files.)

Also:
Der Fehler lag überhaupt nicht bei meinem Assembler-Code bzw. Object-File, sondern an einer ganz anderen Kannte.
Ich hatte als Linker-Ausgabe (in Delphi) C-Objektdateien gewählt.
Aus irgendeinem Grund scheint dieses Feature aber nicht 100% ausgereift zu seien, da es bei meinem Code Probleme bei der Erzeugung dieser C-Objectdateien gab.

Dies wiederum gab die Fehlermeldung aber in keinster Art und Weiße her, weshalb ich den Fehler in meinem ASM-Code vermutete.

FrEEzE2046 11. Jan 2010 10:18

Re: Assembler Files einbinden
 
Delphi treibt mich in den Wahnsinn, daher muss ich diesen Thread noch mal ausgraben.
Habe ein Objekt-File, dass ich mit MASM folgendermaßen kompiliert habe:

ml /c /omf "source.asm"


Das ganze habe ich dann per "{$LINK "Pfad\source.obj"} in Delphi gelinkt und bekomme aber immer die Meldung: "Falsches Dateiformat".
Warum?

gammatester 11. Jan 2010 12:24

Re: Assembler Files einbinden
 
Zitat:

Zitat von FrEEzE2046
Delphi treibt mich in den Wahnsinn, daher muss ich diesen Thread noch mal ausgraben.
Habe ein Objekt-File, dass ich mit MASM folgendermaßen kompiliert habe:

ml /c /omf "source.asm"


Das ganze habe ich dann per "{$LINK "Pfad\source.obj"} in Delphi gelinkt und bekomme aber immer die Meldung: "Falsches Dateiformat".
Warum?

Was ist das für einen MASM-Version? Alle mir bekannten unterstützen keinen "/omf"-Switch.

FrEEzE2046 11. Jan 2010 15:07

Re: Assembler Files einbinden
 
Zitat:

Zitat von gammatester
Was ist das für einen MASM-Version? Alle mir bekannten unterstützen keinen "/omf"-Switch.

9.0.30729.1
/omf, siehe hier

btw. habe ich in der Vergangenheit ja schon erfolgreich mit MASM32 kompilierte OMF-Objektdateien in Delphi eingebunden. Fragt sich nur, was ich damals anders gemacht habe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 Uhr.
Seite 4 von 4   « Erste     234   

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