Einzelnen Beitrag anzeigen

Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: DLL mit Strings von D10 nach Delphi 6

  Alt 25. Okt 2023, 17:26
Ich habe eine DLL in Delphi 10 die eien String zurückgeben soll. Das ganze soll (muss) in einer D6 Anwendung geladen wewrden.
sharemem ist als erstes in den uses eingebunden, der String ist als ansistring definiert.

Der String wird zwar in D6 richtig angezeigt, beim Beenden der Funktion kommt es aber zu einem Speicherzugriffsfehler.
Was ist da noch zu beachten?
3 Möglichkeiten:
a, Entweder baust du eine C-Kompatible Schnittstelle. Also kein AnsiString sondern P(Ansi)Char und Co
b, Exe und DLL sind mit der gleichen Delphi-Version erstellt
c, Du nutzt WideString, so das hier die Speicherverwaltung von Windows genutzt wird und kein Probleme mit
2 Speichermanagern in D6 und D100 auftauchen
Das gibt es auch unter D6, da sonst kein COM genutzt werden könnte.

Ich würde die auch empfehlen komplett von D6 weg zu kommen.
Die Produktivität von D10(.4 bei uns) ist sehr viel höher als mit D6.
Ich würde keinen Job mehr mit D6 anfangen wollen (außer die erste Aufgabe wäre Update auf aktuelles Delphi)
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat