Falls Du wirklich einen Delphi-String zurückgeben willst, so bist du auf beiden Seiten auf Delphi (C++-Builder) festgelegt.
Wenn Du eine neue
DLL mit den Delphi-
DLL-Experten erstellst, so bekommst Du den entsprechenden Hinweis kostenlos:
Zitat:
{ Wichtiger Hinweis zur
DLL-Speicherverwaltung: ShareMem muß sich in der
ersten
Unit der
unit-Klausel der Bibliothek und des Projekts befinden (Projekt-
Quelltext anzeigen), falls die
DLL Prozeduren oder Funktionen exportiert, die
Strings als Parameter oder Funktionsergebnisse übergeben. Das gilt für alle
Strings, die von oder an die
DLL übergeben werden -- sogar für diejenigen, die
sich in Records und Klassen befinden. Sharemem ist die Schnittstellen-
Unit zur
Verwaltungs-
DLL für gemeinsame Speicherzugriffe, BORLNDMM.DLL.
Um die Verwendung von BORLNDMM.DLL zu vermeiden, können Sie String-
Informationen als PChar- oder ShortString-Parameter übergeben. }
Willst Du auch mit C/C++ oder VB auf deine
DLL zugreifen, so darfst Du nur PChar/PWideChars verwenden und mußt klare regeln bezüglich speicherfreigabe aufstellen (Soll Platz schon von aufrufer bereitgestellt werden od wird er von der
DLL angefordert...