Das Problem ist die Speicherverwaltung. Das trifft nicht nur Strings sondern auch Objekte.
Objektorientierung in einer Schnittstelle nur ueber Interfaces. Einfache Funktionen sind viel besser.
Versuch mal eine C++ Plugin-Schnittstelle von Delphi aus zuzugreifen.
ActiveX/
COM wuerde ich erst mal meiden, da sie Windows-spezifisch sind.