Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Delphi 7 dcu in D2005 benutzen (https://www.delphipraxis.net/86765-delphi-7-dcu-d2005-benutzen.html)

runner 19. Feb 2007 14:07


Delphi 7 dcu in D2005 benutzen
 
Hallo,
ich habe das Problem das ich für die serielle Schnittstelle eines Gerätes nur in Delphi7 comilierte Units (DCU) besitze. Nun muß ich die Anwendung aber nach Delhi2005 portieren. Besteht die Möglichkeit die Units z. B. in eine dll oder ähnliches zu kapseln oder gibt es sonst einen Weg unter Delphi2005 darauf zuzugreifen?

mkinzler 19. Feb 2007 14:09

Re: Delphi 7 dcu in D2005 benutzen
 
In einer Bpl, Dll wäre das möglich, sonst nicht, da das Format der dcus bei verschiedenen Delphi-Versionen unterschiedlich ist.

Bernhard Geyer 19. Feb 2007 14:22

Re: Delphi 7 dcu in D2005 benutzen
 
BPL haben gleiches Format? Wird auch nicht gehen. Und DLL's nur wenn sie nicht mit "lebeneden" Delphi-Objekten im der Schnittstelle Arbeiten.

@runner: Wenn schon umstellen dann gleich nach Delphi 2006. Mit der 2005er-Version wirst Du nicht glücklich werden.

hoika 19. Feb 2007 14:45

Re: Delphi 7 dcu in D2005 benutzen
 
Hallo,

oder gleich ne COM-Klasse in D7 basteln,
dann ist die Klasse auch aus der DLL nutzbar.


Heiko

mkinzler 19. Feb 2007 14:47

Re: Delphi 7 dcu in D2005 benutzen
 
Zitat:

BPL haben gleiches Format?
Ja, da es erweiterte Dlls sind. Probleme könnten nur die Abhängigkeiten zu anderen Bibliotheken sein.
Zitat:

@runner: Wenn schon umstellen dann gleich nach Delphi 2006. Mit der 2005er-Version wirst Du nicht glücklich werden.
Volle Zustimmung, besorge dir TD (D10 wie auch BDS2006) das ist auch kostenlos und um Längen besser als Delphi 2005.

DP-Maintenance 19. Feb 2007 15:00

DP-Maintenance
 
Dieses Thema wurde von "r_kerber" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Ist ein Delphi-Thema.

runner 19. Feb 2007 15:21

Re: Delphi 7 dcu in D2005 benutzen
 
@Bernhard Geyer: Bei einer Kapselung in eine DLL dürfte das auch keine Rolle spielen.

COM Klasse hört sich interessant an. Hat jemand eine Idee wie das genau aussehen müsste?

Bernhard Geyer 19. Feb 2007 15:23

Re: Delphi 7 dcu in D2005 benutzen
 
Zitat:

Zitat von runner
@Bernhard Geyer: Bei einer Kapselung in eine DLL dürfte das auch keine Rolle spielen.

Wenn es eine C-Kompatible DLL-Schnittstelle ist: Ja.
Aber es gibt genügend Entwickler die lebende Objekte zwischen Exe und DLL austauschen und auch trotzt der vielen Hürden zum laufen bekommen wenn exe und dll mit der gleichen Delphi-Version kompiliert werden.

I.A 20. Feb 2007 13:12

Re: Delphi 7 dcu in D2005 benutzen
 
Hallo!

Da muss ich mich geleich mal reinhängen.

Zitat:

Zitat von Bernhard Geyer
BPL haben gleiches Format? Wird auch nicht gehen. Und DLL's nur wenn sie nicht mit "lebeneden" Delphi-Objekten im der Schnittstelle Arbeiten.

Ich beschäftige mich nämlich grad mit Debuggern. Hab neben Delphi auch Lazarus. Nur lassen sich deren Units nicht 1:1 nach Delphi portieren (anderer Pascal Dialekt). Da wollte ich eine Debuggerschnittstelle bauen und die passende DLL mit Lazarus übersetzen. Heißt das das in der Dll keine Objekte vorkommen dürfen?
Was mache ich, wenn die entscheidenden Debuggercodes in Klassen definiert sind und ich den Code per DLL für Delphi bereitstellen will?

Mein Vater verwendet Mathcad. Dort kann er auch neue Funktionen definieren indem er Dll-s mit dem Code einbindet. Es gibt da aber nur Beispiele in C. Da gibt es in der DLL eine Funktion WINMAIN. Wie sorge ich in Delphi (bzw. Object Pascal) dafür, das die erzeugte Dll binärkompatibel ist. Mach ich das, indem ich unten "Begin End" schreibe? So hier:

Delphi-Quellcode:
library Mydll;

uses
 //benötigte Units

procedure DoSomething; cdecl;
begin
end;

procedure DoSomethingElse; cdecl;
begin
end;

// ... weitere Routinen

exports
DoSomething,
DoSomethingElse;

begin //Entspricht das hier der Funktion WinMain der in C geschriebenen DLL???
end.
-oder kommt es nur auf die Anweisung cdecl an?

SirThornberry 20. Feb 2007 13:44

Re: Delphi 7 dcu in D2005 benutzen
 
es geht nur darum das keine Delphieigenheiten (AnsiStrings, Objecte) zwischen DLL und Exe ausgetauscht werden.


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