Wie konvertiere ich eine System :: String ^ in const char *?

7

Ich entwickle eine App in C ++ / CLI und habe eine csv-Datei zum Schreiben von Bibliotheken in nicht verwaltetem Code, die ich aus dem verwalteten Teil verwenden möchte. So sieht meine Funktion etwa so aus:

%Vor%

... aber ich bemühe mich wirklich, mein glänzendes System :: String ^ in etwas kompatibles umzuwandeln. Im Grunde hatte ich gehofft zu rufen, indem ich etwas wie:

%Vor%     
Jon Cage 08.07.2009, 14:23
quelle

3 Antworten

13
%Vor%

Von Dev Shed .

    
mcandre 08.07.2009, 14:31
quelle
11

Wie mcandre erwähnt , Marshal :: StringToHGlobalAnsi () ist korrekt. Aber vergessen Sie nicht, die neu zugewiesene Ressource mit Marshal :: FreeHGlobal zu befreien () , wenn die Zeichenfolge nicht mehr verwendet wird.

Alternativ können Sie die Vorlage msclr :: interop :: marshal_as zum Erstellen der Vorlage verwenden String-Ressource und automatisch freigeben, wenn der Aufruf den Ressourcenbereich verlässt.

    
Steve Guidi 08.07.2009 14:40
quelle
1

In der Übersicht über das Marshalling in C ++ gibt es eine Liste der Typen, die diese Konvertierung benötigen.

    
Jon Cage 09.07.2009 08:44
quelle

Tags und Links