Wie würdet ihr dann den JSON String am besten von der
DLL zur Anwendung übertragen? Einfach eine Funktion die einen
string
respektive
PChar
liefert, oder gibt es da andere Ansätze?
Nehme den Typ WideString, dass kannst du dann problemlos in anderen Sprachen nutzen (C#/Visual C++ -> BSTR).
WideString hatte ich ausprobiert, als ich eine Funktion aus einer C#
DLL aufrufen wollte. Die Funktionen in der C#
DLL wurden mit dem Tool UnmanagedExports exportiert. Das hat aber alles nicht funktioniert. Bis ich auf PChar umgestellt hatte. Meine schlussendliche Lösung wie es funktioniert hatte war wie folgt (aus dem Kopf, kann also ein paar kleine Fehler enthalten).
Code:
return: [MarshalAs(UmanagedType.BStr)]
public string TestMethod()
{
string s = "Test";
return s;
}
function TestMethod: PChar; stdcall; external 'Test.dll'