![]() |
AW: ASM Inline code x64
Zitat:
Video im Archiv meine Cloud meldet leider Error 504 So wie ich das sehe läuft hier einiges falsch beim Kompilieren. DCU's sind in unterschiedlichen Ordnern. Und was soll das mit ASM bei 32Bit! Ich kann die Anwendungen Fehlerfrei kompilieren aber nicht mit der Abhängigkeit oder über die Projektgroup. Möchte herausfinden warum das so ist! |
AW: ASM Inline code x64
Also doch die DCUs für 32 und 64 Bit im selben Verzeichnis :shock:
Ich denke mal die Abhängigkeiten verwenden den gleichen Compiler, wie er grade kompiliert wird. Es kommt ja auch als Meldung, dass es der DCC64 ist. Somit kannst du nur Abhängigkeiten mit dem gleichen Ziel nutzen. Und warum ist deine 64-Bit-Anwendung von der 32-Bit abhängig? |
AW: ASM Inline code x64
Zitat:
Verzeichnis 1 = ...\MyPhone64_SOP\_src\_dcu Verzeichnis 2 = ...\MyPhone64_SOP\SOP\_src\_dcu ist bei dir das selbe? Definitiv nicht! Kann man das an den hochgeladenen Bildern nicht erkennen? |
AW: ASM Inline code x64
Hatte geguckt und keinen Unterschied gesehn :duck:
[add] Ich weiß, dass der selbe Compiler genommen wird, egal ob Abhängigkeit nur eine Config für 32 Bit besitzt. |
AW: ASM Inline code x64
Zitat:
Zitat:
Die 64Bit Anwendung schickt über WM_COPYDATA Befehle an die 32Bit Anwendung so das diese mit den 32Bit DLL's arbeiten kann. Bekanntlich vertragen sich 64Bit Anwendungen nicht mit 32Bit DLL's. Damit die 64Bit Anwendung korrekt funktioniert muß vorher die 32Bit kompiliert werden (falls dort etwas geändert wurde) Und ohne die 32Bit Anwendung funktioniert die 64Bit nicht da hier eine Abhängigkeit zu dieser besteht siehe WM_COPYDATA! Zitat:
Der Compiler sollte schon erkennen können ob innerhalb einer Projektgroup Unterschiedliche Konfigurationen 32/64Bit vorliegen. Iczh kann diese ja alle einzeln kompilieren warum dann nicht auch in einer gruppe. Also Alle! |
AW: ASM Inline code x64
Dann arbeite doch einfach mit BuildGruppen.
oder im BeforeBuild eine Prüfung (if not exist oder so) und abbrechen, wenn nicht da/aktuell. |
AW: ASM Inline code x64
Zitat:
Meine frage war nicht welche Möglichkeiten man noch hat sondern warum die von mir aufgezeigten nicht funktionieren. Es ist unlogisch eine Option.. Alle Projekte zu kompilieren zur Verfügung zu stellen wenn es nicht funktioniert (Siehe Video) Und warum können Abhängigkeiten nicht in einem Durchgang kompiliert werden letztendlich ist es nichts anderes als.. Kompiliere erst dies und dann das. Sorge dafür das SOP.exe aktuell ist und kompiliere dann die 64Bit-EXE. Zitat:
Das ist ein Fehler des Compiler und oder der IDE.. und wenn dem so ist sollte man das schnellstens beheben. |
AW: ASM Inline code x64
Zitat:
Meine Frage dazu ist: Ist die gezeigte uMain.pas mit den Assembler-Quelltext Bestandteil des MyPhone64.exe Projektes oder von SOP.exe? Ich vermute vom SOP.exe (Release Win32). Ich kann das Verhalten nicht ganz erklären, aber wie du auch im Video siehst, wird bei aktivierte Abhängigkeit von MyPhone64.exe zu SOP.exe zuerst der dcc64 aufgerufen, wenn du "Erzeugen" auf MyPhone64.exe aufrufst. Erst dann wird in Folge der passende dcc32 für SOP.exe aufgerufen. Da der inline Assembler-Quelltext nicht unter 64-Bit kompiliert, schlägt dir der erste Fehler entgegen. Alles andere sind nur Folgefehler, weil nicht ordnungsgemäß geparst werden kann. Wenn du das SOP.exe-Projekt so umbaust, dass es theoretisch unter 64-Bit kompilieren würde, dann könnte es funktionieren.
Code:
Checking project dependencies...
Building SOP.dproj (Release, Win64) brcc32 command line for "SOP.vrc" c:\delphi\sydney\bin\cgrc.exe -c65001 SOP.vrc -foSOP.res dcc64 command line for "SOP.dpr" c:\delphi\sydney\bin\dcc64.exe -$D0 -$L- -$Y- --no-config -B -Q -TX.exe -AGenerics.Collections=System.Generics.Collections; Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DRELEASE -E.\Win64\Release -Ic:\delphi\sydney\lib\Win64\release\DE;c:\delphi\sydney\lib\Win64\release;"\\NAS\Nutzer_Doku\User\Eigene Dateien\Embarcadero\Studio\21.0\Imports";c:\delphi\sydney\Imports;C:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Win64; c:\delphi\sydney\include;c:\Projekte\Komponenten\develop\Finetech_VC;c:\Projekte\Komponenten\develop\Finetech_C; c:\Projekte\Komponenten\develop\Finetech_Design;c:\Projekte\Komponenten\develop\Finetech_Dialog; c:\Projekte\Komponenten\develop\Finetech_ElfSectionReader;c:\Projekte\Komponenten\develop\Finetech_ElfSectionReader\Pse; c:\Projekte\Komponenten\develop\Finetech_Public;c:\Projekte\Komponenten\develop\Finetech_Raize;c:\Projekte\Komponenten\develop\Finetech_Serial; c:\Projekte\Komponenten\develop\Finetech_SpaceNav;c:\Projekte\Komponenten\develop\Resources;C:\Delphi\Jedi\jcl\lib\d27\win64; C:\Delphi\Jedi\jcl\source\include;c:\Delphi\RaizeKonopka\Lib\RX10.4\Win64;c:\Delphi\FastMM;c:\Delphi\FastReport\LibD27x64; C:\Delphi\Jedi\jvcl\lib\D27\win64;C:\Delphi\Jedi\jvcl\common;C:\Delphi\Jedi\jvcl\Resources;"C:\Delphi\VirtualTreeview\Packages\RAD Studio 10.4\Win64\Release";C:\Projekte\Komponenten\develop\Lib\D27\Win64\Release -LEC:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\Win64 -LNC:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Win64 -NU.\Win64\Release -NSSystem;Xml;Data;Datasnap;Web;Soap; -Oc:\delphi\sydney\lib\Win64\release;"\\NAS\Nutzer_Doku\User\Eigene Dateien\Embarcadero\Studio\21.0\Imports";c:\delphi\sydney\Imports; C:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Win64;c:\delphi\sydney\include;c:\Projekte\Komponenten\develop\Finetech_VC; c:\Projekte\Komponenten\develop\Finetech_C;c:\Projekte\Komponenten\develop\Finetech_Design;c:\Projekte\Komponenten\develop\Finetech_Dialog; c:\Projekte\Komponenten\develop\Finetech_ElfSectionReader;c:\Projekte\Komponenten\develop\Finetech_ElfSectionReader\Pse; c:\Projekte\Komponenten\develop\Finetech_Public;c:\Projekte\Komponenten\develop\Finetech_Raize;c:\Projekte\Komponenten\develop\Finetech_Serial; c:\Projekte\Komponenten\develop\Finetech_SpaceNav;c:\Projekte\Komponenten\develop\Resources;C:\Delphi\Jedi\jcl\lib\d27\win64; C:\Delphi\Jedi\jcl\source\include;c:\Delphi\RaizeKonopka\Lib\RX10.4\Win64;c:\Delphi\FastMM;c:\Delphi\FastReport\LibD27x64; C:\Delphi\Jedi\jvcl\lib\D27\win64;C:\Delphi\Jedi\jvcl\common;C:\Delphi\Jedi\jvcl\Resources;"C:\Delphi\VirtualTreeview\Packages\RAD Studio 10.4\Win64\Release";C:\Projekte\Komponenten\develop\Lib\D27\Win64\Release -Rc:\delphi\sydney\lib\Win64\release\DE;c:\delphi\sydney\lib\Win64\release; "\\NAS\Nutzer_Doku\User\Eigene Dateien\Embarcadero\Studio\21.0\Imports";c:\delphi\sydney\Imports; C:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Win64;c:\delphi\sydney\include;c:\Projekte\Komponenten\develop\Finetech_VC; c:\Projekte\Komponenten\develop\Finetech_C;c:\Projekte\Komponenten\develop\Finetech_Design;c:\Projekte\Komponenten\develop\Finetech_Dialog; c:\Projekte\Komponenten\develop\Finetech_ElfSectionReader;c:\Projekte\Komponenten\develop\Finetech_ElfSectionReader\Pse; c:\Projekte\Komponenten\develop\Finetech_Public;c:\Projekte\Komponenten\develop\Finetech_Raize;c:\Projekte\Komponenten\develop\Finetech_Serial; c:\Projekte\Komponenten\develop\Finetech_SpaceNav;c:\Projekte\Komponenten\develop\Resources;C:\Delphi\Jedi\jcl\lib\d27\win64; C:\Delphi\Jedi\jcl\source\include;c:\Delphi\RaizeKonopka\Lib\RX10.4\Win64;c:\Delphi\FastMM;c:\Delphi\FastReport\LibD27x64; C:\Delphi\Jedi\jvcl\lib\D27\win64;C:\Delphi\Jedi\jvcl\common;C:\Delphi\Jedi\jvcl\Resources;"C:\Delphi\VirtualTreeview\Packages\RAD Studio 10.4\Win64\Release";C:\Projekte\Komponenten\develop\Lib\D27\Win64\Release -Uc:\delphi\sydney\lib\Win64\release\DE;c:\delphi\sydney\lib\Win64\release; "\\NAS\Nutzer_Doku\User\Eigene Dateien\Embarcadero\Studio\21.0\Imports";c:\delphi\sydney\Imports; C:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Win64;c:\delphi\sydney\include;c:\Projekte\Komponenten\develop\Finetech_VC; c:\Projekte\Komponenten\develop\Finetech_C;c:\Projekte\Komponenten\develop\Finetech_Design;c:\Projekte\Komponenten\develop\Finetech_Dialog; c:\Projekte\Komponenten\develop\Finetech_ElfSectionReader;c:\Projekte\Komponenten\develop\Finetech_ElfSectionReader\Pse; c:\Projekte\Komponenten\develop\Finetech_Public;c:\Projekte\Komponenten\develop\Finetech_Raize;c:\Projekte\Komponenten\develop\Finetech_Serial; c:\Projekte\Komponenten\develop\Finetech_SpaceNav;c:\Projekte\Komponenten\develop\Resources;C:\Delphi\Jedi\jcl\lib\d27\win64; C:\Delphi\Jedi\jcl\source\include;c:\Delphi\RaizeKonopka\Lib\RX10.4\Win64;c:\Delphi\FastMM;c:\Delphi\FastReport\LibD27x64; C:\Delphi\Jedi\jvcl\lib\D27\win64;C:\Delphi\Jedi\jvcl\common;C:\Delphi\Jedi\jvcl\Resources;"C:\Delphi\VirtualTreeview\Packages\RAD Studio 10.4\Win64\Release";C:\Projekte\Komponenten\develop\Lib\D27\Win64\Release -CC -NBC:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Win64 -NHC:\Users\Public\Documents\Embarcadero\Studio\21.0\hpp\Win64 -NO.\Win64\Release SOP.dpr [dcc32 Error] SOP.dpr(21): E1025 Unsupported language feature: 'ASM' [dcc32 Warning] SOP.dpr(23): W1011 Text after final 'END.' - ignored by compiler Failed Elapsed time: 00:00:00.3 |
AW: ASM Inline code x64
ganz einfacher Test:
Ich dachte erst, die Abhängigkeit liegt in der DPROJ und übernimmt so (ausversehn) die Config des Aufrufers. In der DPROJ steht oben ja
XML-Code:
, also diese Einstellung wird nur genommen, wenn nicht von außen vorgegeben,
<Platform Condition="'$(Platform)'==''">Win32</Platform>
aber es kommt aus der GROUPPROJ und da könnte Delphi/InlineCompiler es anders/richtig machen. |
AW: ASM Inline code x64
Zitat:
Obwohl es zwei uMain gibt. Aber jede für sich im eigenen Root incl. der erzeugten DCU. Zitat:
Da ist die IDE bzw. der Compiler anscheinend zu dumm zu erkennen das es hier um 32Bit bzw.. eine Kombination von 32/64Bit geht. In VS(Visual Studio) kann ich mehrere Konfigurationen festlegen x86/x64 usw.. dort wird jeweils der korrekte Compiler beim Kompilieren ausgeführt. Nur mal so nebenbei. Zitat:
Erst muß diese und dann das aufgerufenen Projekt kompiliert werden. Das scheint aber nicht so zu sein. Wenn ich doch weiß das mein Hauptprogramm ohne die Abhängigkeit nicht funktioniert dann muß logischer weise erst diese erstellt werden damit das Hauptprogramm überhaupt funktioniert. Aber bitte mit dem richtigen Compiler. Es ist doch nicht der Sinn des Programmierers Fehler beim erstellen von Konfigurationen für die Kompilierung der IDE\Compiler für Delphi auszubügeln wenn hier solche Sachen auftreten das weder eine Abhängigkeit noch das erstellen einer Projektgroup verschiedener Builds (Konfigurationen) auftreten\nicht funktionieren. Wie ich schon sagte.. Ich kann jedes Projekt eigenständig erstellen und es Kompiliert Fehlerfrei. Aber nicht auf den oder die aufgezeigten von der IDE bereitgestellten Möglichkeiten. Warum stellt man diese zur Verfügung wenn sie nicht funktionieren? Ich hatte ja schon gefragt wie ich es umbauen könnte. Leider kam diesbezüglich noch kein Vorschlag siehe..
Delphi-Quellcode:
Scheint ja als eigene Procedure nicht zu funktionieren.
procedure ClearPendingExceptions;
asm FNCLEX end; Nur warum funktioniert dann meine Rgb2Gray Funktion wenn "asm inline" angeblich unter 64Bit nicht funktioniert. Sehr unverständlich das ganze. Zitat:
Das es falsch bzw. richtig ausgeführt wird in deinem Test? Aus meiner Sicht läuft hier definitiv etwas ganz gehörig schief! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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