Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi nur DCU Datei zur Verfügung. Probleme? (https://www.delphipraxis.net/119834-nur-dcu-datei-zur-verfuegung-probleme.html)

Oracle 1. Sep 2008 20:46


nur DCU Datei zur Verfügung. Probleme?
 
Ich muss zur Zeit ein Gerät in meine Software einbinden, von dem ich nur die .dcu Datei als Brücke zur Zugehörigen Dll habe.
Reicht das zum Einbinden? Mein Delphi meckert nämlich, und meint er kann die nicht kompilieren. Kann es daher kommen, dass die .dcu mit einer anderen Version von Delphi kompiliert wurde?

Vielen Dank schon mal im Vorraus :-D

mkinzler 1. Sep 2008 20:53

Re: nur DCU Datei zur Verfügung. Probleme?
 
Zitat:

Kann es daher kommen, dass die .dcu mit einer anderen Version von Delphi kompiliert wurde?
Wahrscheinlich.
Abhilfe könnte ein eigener Wrapper für die Dll sein

mschaefer 1. Sep 2008 21:01

Re: nur DCU Datei zur Verfügung. Probleme?
 
Moin, moin,

genau so ist das. Die DCU´s sind Compilerversionsabhängig. Was Du ohne Garantie auf Erfolg probieren kannst ist folgendes. Bei Torry gibt es ein Projekt namens DCU2PAS. Damit kannst Du eine Pas Datei generieren. Die ist allerdings nicht wirklich menschlich lesbar, kann aber in einigen Fällen zumindest den Assemblercode sogut extrahieren, dass man die Pas-Datei mit vorhandenen Beispielanwendungen neu compilieren kann. Wenn es damit nicht klappt war es dies wohl und nur eine Anfrage beim Hersteller hilft weiter.

Grüße // Martin

Oracle 3. Sep 2008 09:04

Re: nur DCU Datei zur Verfügung. Probleme?
 
Also ich habe das mit dem DCU2PAS probiert und hatte leider keinen Erfolg. Er baut unbekannte Bezeichner in den generierten Code ein, und an diesen scheitert leider dann die compilierung.
Den Hersteller kenne ich persönlich, von daher kann ich problemlos mit ihm in Kontakt treten. Beim ersten Nachfragen, meinte er dass er die *.pas Datei zur Zeit nicht rausrücken möchte, da sich darin KnowHow verbirgt. Dieses muss erst durch einen C-Programmierer in die Dll wandern. Da kam mir ganz nebenbei die Frage, ob das nicht auch mit Delphi geht? Muss ich eine DLL zwangsweise in C schreiben?

sirius 3. Sep 2008 09:12

Re: nur DCU Datei zur Verfügung. Probleme?
 
Zitat:

Zitat von Oracle
Muss ich eine DLL zwangsweise in C schreiben?

Nö, geht genausogut mit Delphi (außer diese statischen DLLs)

mschaefer 3. Sep 2008 13:43

Re: nur DCU Datei zur Verfügung. Probleme?
 
Zitat:

Zitat von Oracle
Er baut unbekannte Bezeichner in den generierten Code ein

Kopier mal raus welche. Der Assemblercode hat sich von Compilerversion zu Version in Delphi etwas verändert..


Grüße // Martin

Oracle 3. Sep 2008 15:41

Re: nur DCU Datei zur Verfügung. Probleme?
 
Alles klar, folgende kennt er nicht:

_DOT_2 und folgende Offsets:

@@5924,@@5980,@@6020,@@504,@@544,@@796,@@820,@@844 ,@@868,
@@796,@@896,@@920,@@948,@@960,@@984,@@1000,@@1020, @@1060,@@1100.

Ich verstehe leider fast nichts von Assembler und kann deshalb wenig damit anfangen.

[edit=Phoenix]Zeile umgebrochen, hat das Layout zerlegt. Mfg, Phoenix[/edit]

Namenloser 3. Sep 2008 15:54

Re: nur DCU Datei zur Verfügung. Probleme?
 
Kannst du dem Entwickler der Unit nicht denn Commandline-Compiler von Delphi zukommen lassen, wenn er dir die Sourcen nicht geben will? Streng genommen wäre das aber illegal.

Oracle 3. Sep 2008 15:57

Re: nur DCU Datei zur Verfügung. Probleme?
 
Nee, Illegal geht nicht.

mschaefer 3. Sep 2008 16:07

Re: nur DCU Datei zur Verfügung. Probleme?
 
Ok damit ist wirklich nichts zu machen.

Du könntest Deinen Entwickler fragen, ob er Dir ein OBJ, anstatt des DCU´s compilieren kann (in den Compilereinstellungen).
Die Dinger sind systemübergreifend gleich und können in Dein Programm eingebunden werden.

Grüße // Martin


PS: OBJ mi Delphi


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19 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