Autor Beitrag
bigmasterdenis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Mi 29.10.08 11:48 
Hallo Leute!

Bisher habe ich alles mit Delphi 6 bzw. 7 programmiert. Nun bin ich auf Delphi 2009 Umgestiegen und bekomme beim Kompillieren der "alten" Projekte Fehlermeldungen wie diese:

[DCC Fataler Fehler] Main.pas(7): F2063 Verwendete Unit 'RT_ClientServerInterface.pas' kann nicht compiliert werden.

Kein Wunder RT_ClientServerInterface gibt es nämlich gar nicht als .pas-Datei es stammt nämlich aus einer Library von Drittanbietern und liegt als .dcu-Datei vor. Source-Files habe ich natürlich nicht. Laut googeln meckert Delphi weil die Unit mit einer älteren Delphi-Version kompilliert wurde.

Gibt es eine Möglichkeit die Unit trotzdem irgendwie zu usen?

Danke und Gruß
Denis
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 29.10.08 11:51 
Du brauchst entweder die Sourcen oder eine zu Deiner Delphi-Version passende dcu. Eine andere Möglichkeit ist mir nicht bekannt.
bigmasterdenis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Mi 29.10.08 11:55 
Verdammt...

Es würde also klappen wenn der Library-Entwickler die Lib nochmal mit Delphi 09 kompilliert?
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 29.10.08 12:00 
Das würde zumindest die Chance enorm erhöhen ;)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 29.10.08 12:00 
Richtig, die einzige andere Möglichkeit wäre, die Funktionalität in eine DLL auszulagern und die DLL mit der alten Delphi-Version zu kompilieren. Allerdings ist die einzige wirklich sinnvolle Lösung eine passende kompilierte Version der Units zu benutzen.
bigmasterdenis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Mi 29.10.08 12:07 
He he... dann schreibe ich jetzt den Entwickler an. Der wird begeistert sein :-D
bigmasterdenis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Mi 29.10.08 14:12 
hhm... habe gerade entdeckt, dass die Library einen Ordner mit .INT-Dateien enthält. Diese scheinen den Quellcode der Interfaces zu enthalten.

Kann man mit diesen INT's was sinnvolles anfangen?

Wenn ich die Files in *.pas umbenenne, dann lässt sich das Projekt etwas weiter kompillieren, meckert dann aber sowas wie "Deklaration erwartet aber Ende der Datei gefunden..."

Jemand ne Idee?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 29.10.08 14:16 
Ich vermute mal um die Benutzung der Bibliothek zu vereinfachen wurde dort schlicht der Deklarationsteil der Quelltextdateien kopiert, den man ja sonst nicht sehen würde in kompilierter Form, aber natürlich ohne die Implementierung. Und deshalb wirst du damit auch nichts anfangen können was das Kompilieren angeht.

Aber warum schaust du nicht einfach mal in den Dateien nach?
bigmasterdenis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Mi 29.10.08 14:41 
Hast recht, es sind nur Deklarationen ohne Implementierung... :-(

Zitat:
Aber warum schaust du nicht einfach mal in den Dateien nach?

Ich habe nur diese INT's und die dcu's. Es gibt also nicht viel zu schauen... :-(
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 29.10.08 14:52 
user profile iconbigmasterdenis hat folgendes geschrieben Zum zitierten Posting springen:
Zitat:
Aber warum schaust du nicht einfach mal in den Dateien nach?

Ich habe nur diese INT's und die dcu's. Es gibt also nicht viel zu schauen... :-(
Ich meinte das Nachschauen was da eigentlich drin ist, denn da ich die Dateien ja nicht habe konnte ich ja nur vermuten was drin stecken könnte. Und auch wenn das bei der genannten Fehlermeldung ziemlich klar war konntest nur du es ja direkt feststellen. Mit der Frage meinte ich, warum du nicht gleich in den Dateien nachgeschaut hast? ;-)

Jedenfalls hast du ohne den Quelltext keine anderen Möglichkeiten. Solltest du an keine Version für Delphi 2009 kommen, kannst du nur eine mit der alten Delphiversion kompilierte DLL nehmen und dort alle Zugriffe auf die Bibliothek kapseln.
Je nach Größe und Struktur deines Projekts wäre das dann mehr oder weniger Arbeit. Wenn du zum Beispiel ohnehin eine Kapselung der Funktionen für die Verwendung in deinem Projekt nutzt wäre der Aufwand vielleicht gar nicht so groß.

Wenn du aber überall Funktionen der Bibliothek verstreut im Programm nutzt, was bei kleineren Projekten ja oft der Fall ist, dann wird dieser Weg mit relativ viel Aufwand verbunden sein.

Deshalb würde ich einfach mal auf Antwort warten, ob eine aktualisierte Version zur Verfügung gestellt werden kann, und erst dann über Alternativen nachdenken, denn eine wirklich gute Alternative gibt es eben nicht.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mi 29.10.08 20:25 
Und genau deshalb bin ich dafür, entweder man compiliert in portable Zwischen-Files, die Compiler-unabhängig wiederverwendbar sind (wie es z.B. jeder gängige C-Compiler kann, oder man muss seine Libs als Source releasen. An dieser Stelle krankt es bereits seit Jahren, da Borland hier unbedingt seine eigene proprietäre Kacke produzieren musste, und damit im Endeffekt die Wiederverwendung nicht gerade entwicklerfreundlich gestaltet.

SCNR!

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.