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


Anmelden zum Antworten