Autor Beitrag
Robert Wagner
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mo 04.08.14 13:30 
Hallo,

wir haben eine große D5 Applikation bestehend aus einer EXE und 1000+ DLLs. Datenbankzugriff erfolgt über die BDE und alle Module sind mit Runtimepackages kompiliert. Wenn wir einzelne DLLs mit D2010 oder einer höheren Delphiversion übersetzen und die D5 und die neu übersetzten DLLs sich gegenseitig aufrufen, dann kommt es entweder immer wieder zu Zugriffsverletzungen oder das Programm hängt sich in einer Endlosschleife auf.

Frage: Hat jemand von euch schon mal so einen gemischten Betrieb von mit unterschiedlichen Delphiversionen kompilierten DLLs und Runtimepackages erfolgreich realisiert? Falls ja, auf was ist zu achten?


Viele Grüße

Robert
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 04.08.14 13:53 
Hallo und :welcome:

Da es sich um DLLs handelt, weiß ich nicht wie es sich mit dem Speichermanager verhält, der bei Einbindung von Packages ja der gleiche ist, bei DLLs nicht.

Wichtig ist auf jeden Fall, dass in den DLL Schnittstellen keine Objekte hin- und hergeschoben werden. Ist das der Fall, dürfte es, Speichermanager hin oder her, nicht machbar sein einzelne DLLs mit unterschiedlichen Versionen von Delphi zu erstellen, da die Objekte natürlich nicht kompatibel sind.

Ansonsten ist noch wichtig, dass Strings als Typ PAnsiChar, PWideChar usw. übergeben werden und nicht PChar, String usw., wegen Unicode ab Delphi 2009.