PChar ist ein Zeiger auf eine Zeichenkette. Da
DLL und Exe unterschiedliche Speichermanager haben, funktioniert das nicht. Das heißt nicht FreeLibrary löst die
Exception aus, sondern die tritt schon viel früher auf. Wie man Zeichenketten aus einer
DLL zurückgibt, kannst du hier sehen:
http://www.michael-puff.de/Artikel/StringDLL.shtml