Teilen über


Marshallen von Zeichenfolgen

Die Plattformaufrufmethode kopiert Zeichenfolgenparameter und konvertiert sie, falls nötig, aus dem .NET Framework-Format (Unicode) in das unverwaltete Format (ANSI). Da verwaltete Zeichenfolgen unveränderlich sind, kopiert der Plattform-Aufruf sie nicht aus nicht verwaltetem Speicher zurück in verwalteten Speicher, wenn die Funktion zurückgegeben wird.

In der folgenden Tabelle sind Marshallingoptionen für Zeichenfolgen aufgeführt, deren Verwendung beschrieben und ein Link zum entsprechenden .NET Framework-Beispiel bereitgestellt.

Schnur BESCHREIBUNG Beispiel
Nach Wert. Übergibt Zeichenfolgen als In-Parameter. MsgBox
Als Ergebnis. Gibt Zeichenfolgen aus nicht verwalteten Code zurück. Zeichenfolgen
Nach Verweis. Übergibt Zeichenfolgen als In/Out-Parameter mithilfe von StringBuilder. Puffer
In einer Struktur nach Wert. Zeichenfolgen werden in einer Struktur, die ein In-Parameter ist, übergeben. Strukturen
In einer Struktur nach Verweis (char*). Übergibt Zeichenfolgen in einer Struktur, die ein In/Out-Parameter ist. Die nicht verwaltete Funktion erwartet einen Zeiger auf einen Zeichenpuffer, und die Puffergröße ist ein Element der Struktur. Zeichenfolgen
In einer Struktur nach Verweis (char[]) . Übergibt Zeichenfolgen in einer Struktur, die ein In/Out-Parameter ist. Die nicht verwaltete Funktion erwartet einen eingebetteten Zeichenpuffer. OSInfo
In einer Klasse nach Wert (char*). Übergibt Zeichenfolgen in einer Klasse (eine Klasse ist ein In/Out-Parameter). Die nicht verwaltete Funktion erwartet einen Zeiger auf einen Zeichenpuffer. OpenFileDlg
In einer Klasse nach Wert (char[]) . Übergibt Zeichenfolgen in einer Klasse (eine Klasse ist ein In/Out-Parameter). Die nicht verwaltete Funktion erwartet einen eingebetteten Zeichenpuffer. OSInfo
Als Array aus Zeichenfolgen nach Wert. Erstellt ein Array aus Zeichenfolgen, das als Wert übergeben wird. Felder
Als ein Array von Strukturen, das Zeichenfolgen nach Wert enthält. Erstellt ein Array von Strukturen, die Zeichenfolgen enthalten, und das Array wird als Wert übergeben. Felder

Siehe auch