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.