Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - D5 - D2010 /XEx Migration


Robert Wagner - Mo 04.08.14 13:30
Titel: D5 - D2010 /XEx Migration
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 - 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.