An alle die sich hier Gedanken gemacht haben vielen Dank.
Hallo,
wird ShareMem überhaupt gebraucht?
Wie sieht das Interface der
DLL aus?
Vielleicht was mit
Unicode?
Alles prallt da bei mir ab da der Aufruf aus D7 XE funktioniert.
Und LoadLibraray() ist ja keine Zirkusnummer.
Wozu Sharemem ist keine Frage weil einfach vorhanden.
Mein erster Gedanke war auch, ob das eigentlich kompatibel sein kann, aber da es unter XE noch ging, bin ich wieder davon abgekommen, weil ich es nie verwendet habe und keine Ahnung habe, wie das läuft.
Wenn du dir aber nicht sicher bist, ob es gebraucht wird, kann es natürlich unter XE noch funktioniert haben, weil es schlicht überflüssig ist. Insofern wäre es schon wichtig, dir die exportierte Funktion diesbezüglich anzuschauen. Wenn die exportierte Funktion sauber umgesetzt ist, sprich nur WideString oder PAnsiChar/PWideChar usw. und keine Delphi-Strings verwendet werden, braucht man Sharemem auch nicht.
Entferne Sharemem doch einfach mal aus der uses. Wenn es daran liegt, kannst du die
DLL auf jeden Fall korrekt laden. Es gibt dann zwar ggf. später Fehler, aber zum Testen kannst du es ja ohne versuchen.
Die Verwendung der
DLL ist im Prinzip 20 Jahre alt. Diese beinhaltet Anwenderdaten zur Lizenzierung. Die
DLL wird in einem Ablauf erstellt. Da hat die Sharemem niemanden interessiert. Die steht da drin, auch wenn sie überholt ist.
Das die mir jetzt bei D11 und Loadlibrary() auf die Füße fällt hätte ich nicht erwartet.
Es ist wie es ist.
Ich mache daraus jetzt keine Doktorarbeit. Habe heute x Stunden mit x Versionen experimentiert.
Diese alten DLLs werden durch neue DLLs auf Basis D11 ersetzt.
Ist umständlicher aber die sichere Lösung ohne Basteln etc.
Nochmals vielen Dank an alle die mitgedacht haben.
Wenn jemand Bock auf den Ansatz hat schicke ich gerne den Source zu der
DLL aus D7.