![]() |
Re: Assembler Files einbinden
Falls es hilft: Keine Probleme mit TASM 5.0.
|
Re: Assembler Files einbinden
Hier eine Version mit MASM, die ohne Probleme von D6 akzeptiert wird.
Code:
TITLE SimpleTest.asm
.686P .XMM .MODEL FLAT PUBLIC Proc1 PUBLIC Proc2 .CODE proc1_text Proc1 PROC ; ; Proc1 ENDP .CODE proc2_text Proc2 PROC ; ; Proc2 ENDP END |
Re: Assembler Files einbinden
Zitat:
Code:
TITLE Test.asm
.686P .XMM .MODEL FLAT PUBLIC Proc1 PUBLIC Proc2 .CODE Proc1 PROC ret Proc1 ENDP Proc2 PROC ret Proc2 ENDP END
Delphi-Quellcode:
Unit Test;
interface procedure Proc1(); procedure Proc2(); implementation {$LINK Test.obj} procedure Proc1(); external; procedure Proc2(); external; end. Wenn ich Proc2 in Delphi auskommentiere, dann geht es. Lasse ich es drin:
Code:
Ungenügende Forward- oder External-Deklaration 'Proc2'
Und in C mit dem VS geht das wunderbar. Versteh ich absolut nicht, was da die Ursache ist. Zitat:
|
Re: Assembler Files einbinden
Meine letzte Version mit .CODE proc2_text ist auch mit Delphi5 kompilierbar. Daß es D5 bei Dir nicht packt, liegt dann wohl daran, daß Du nicht das letzte asm benutzt oder geht's damit auch nicht?
|
Re: Assembler Files einbinden
Zitat:
Ich benutze den Code, der in meinem letzten Posting steht. Wie hast du es denn in Delphi deklariert? |
Re: Assembler Files einbinden
Zitat:
Delphi-Quellcode:
procedure proc1; external;
procedure proc2; external; {$link xx.obj} |
Re: Assembler Files einbinden
mmmh,
also ich hab's jetzt mit /omf zusätzlich kompilieren müssen, da MASM standardmäßig coff-files erzeugt (wenn ich mich nicht irre). Und was soll ich sagen; es geht! Der einzige Unterschied ist, dass du mehrere Code-Segmente (also zwei) gemacht hast. Aber warum ist dass notwendig? Ich muss wirklich sagen, dass die Verbindung masm / Delphi durchaus komplizierter ist als c / nasm. Da hat man so Probleme nicht. Kannst du evtl. mal 1-2 Sätze dazu sagen, warum dass hier notwendig ist? |
Re: Assembler Files einbinden
Zitat:
Zitat:
Zitat:
Gruß Gammatester |
Re: Assembler Files einbinden
Zitat:
Kann mir jedenfalls nicht vorstellen, dass man für jede Funktion ein neues Code-Segment bedingen muss ... ist eigentlich ziemlich absurd aus meiner Sicht. |
Re: Assembler Files einbinden
Ob man's glauben mag oder nicht:
Der Fehler ist jetzt schon wieder aufgetreten. Delphi sagt als Warnung immer: 'Falsche globale Symboldefinition' bei beiden Funktionen. Dass führt in meinem Entwicklungsprojekt jetzt zu einer Zugriffsverletzung in der dcc50.dll. Was ist falsch am Code?
Code:
TITLE Test.asm
.686P .XMM .MODEL FLAT PUBLIC FuncA PUBLIC FuncB .CODE FuncA_Code FuncA PROC FuncA ENDP .CODE FuncB_Code FuncBPROC FuncBENDP END |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 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