Marshaling nach std::string (STL)
-
Hi,
ich habe einen ganzen Satz von Funktionen in einer DLL, die als Parameter
std:string der STL verwenden.Funktioniert das Marshaling zu einem STL String oder ist das von Microsoft nicht vorgesehen?
Das Marshaling zu char * funktioniert. Wäre aber ein enormer Aufwand, alle Funktionsparameter nach char * umzuwandeln.
Grüße,
taraneas
-
Das musst Du selber machen... siehe FAQ...
-
Tut mir leid, aber ich finde nur, wie man die .Net Strings in std::string umwandelt.
Wie man aber das Marshaling hinbekommt, steht nicht in den FAQ.
Ich könnte jetzt jeden String umwandeln und dann mit dem std::string die DLL Funktion aufrufen. Das bedeutet aber, dass ich meinen Code nicht mehr clr:safe kompilieren kann, weil unmanaged Daten debei sind. Genau deshalb bräuchte ich aber das Marshaling, damit die DLL std::string Parameter automatisch gewandelt werden und ich den Aufrufcode clr:safe kompilieren kann.
-
Du willst std:.string mit /clr:safe übersetzen? Das wiederspricht sich doch! Was soll den dabei noch "safe" sein?
Es gibt kein automatisches Marschalling für std::string nur für LP(C)(T|W)STR