Marshallen von Zeichenfolgen
Aktualisiert: November 2007
Plattformaufruf kopiert Zeichenfolgenparameter, wobei diese gegebenenfalls aus dem .NET Framework-Format (Unicode) in das nicht verwaltete Format (ANSI) konvertiert werden. Da nicht verwaltete Zeichenfolgen unveränderlich sind, kopiert Plattformaufruf diese bei Rückgabe der Funktion nicht aus dem nicht verwalteten Speicher in den verwalteten Speicher zurück.
Die folgende Tabelle listet Mashalloptionen für Zeichenfolgen zusammen mit einer Beschreibung ihrer Verwendung und einem Link zum entsprechenden .NET Framework-Beispiel auf.
Zeichenfolge |
Beschreibung |
Beispiel |
---|---|---|
Durch einen Wert. |
Übergibt Zeichenfolgen als In-Parameter. |
|
Als Ergebnis. |
Gibt Zeichenfolgen aus nicht verwaltetem Code zurück. |
|
Durch einen Verweis. |
Übergibt Zeichenfolgen als In/Out-Parameter unter Verwendung von StringBuilder. |
|
In einer Struktur durch einen Wert. |
Übergibt Zeichenfolgen als Struktur, die ein In-Parameter ist. |
|
In einer Struktur durch einen Verweis (char*). |
Übergibt Zeichenfolgen als Struktur, die ein In/Out-Parameter ist. Die nicht verwaltete Funktion erwartet einen Verweis auf einen Zeichenpuffer, und die Puffergröße ist ein Member der Struktur. |
|
In einer Struktur durch einen Verweis (char[]). |
Übergibt Zeichenfolgen als Struktur, die ein In/Out-Parameter ist. Die nicht verwaltete Funktion erwartet einen eingebetteten Zeichenpuffer. |
|
In einer Struktur durch einen Wert (char*). |
Übergibt Zeichenfolgen in einer Klasse. (Eine Klasse ist ein In/Out-Parameter.) Die nicht verwaltete Funktion erwartet einen Zeiger auf einen Zeichenpuffer. |
|
In einer Struktur durch einen Wert (char[]). |
Übergibt Zeichenfolgen in einer Klasse. (Eine Klasse ist ein In/Out-Parameter.) Die nicht verwaltete Funktion erwartet einen eingebetteten Zeichenpuffer. |
|
Als Array von Zeichenfolgen durch einen Wert. |
Erstellt ein Array von Zeichenfolgen, das durch einen Wert übergeben wird. |
|
Als Array von Strukturen, die Zeichenfolgen durch einen Wert enthalten. |
Erstellt ein Array von Strukturen, die Zeichenfolgen enthalten. Das Array wird durch einen Wert übergeben. |
Siehe auch
Konzepte
Datentypen für den Plattformaufruf
Marshallen von Klassen, Strukturen und Unions
Verschiedene Marshallingbeispiele