Marshallen von Zeichenfolgen
Der Plattformaufruf kopiert Zeichenfolgenparameter, wobei das .NET Framework-Format (Unicode) bei Bedarf in das nicht verwaltete Format (ANSI) konvertiert wird. Da verwaltete Zeichenfolgen unveränderlich sind, kopieren Plattformaufrufe sie bei Rückgabe der Funktion nicht aus dem nicht verwalteten Speicher in den verwalteten Arbeitsspeicher.
In der folgende Tabelle werden Marshallingoptionen für Zeichenfolgen aufgelistet. Ihre Verwendung wird beschrieben, und es werden Links zu den entsprechenden .NET Framework-Beispielen bereitgestellt.
Zeichenfolge | Beschreibung | Beispiel |
---|---|---|
Nach Wert. | Übergibt Zeichenfolgen als In-Parameter. | MsgBox |
Als Ergebnis. | Gibt Zeichenfolgen aus nicht verwaltetem Code zurück. | Zeichenfolgen |
Nach Verweis. | Übergibt Zeichenfolgen als In/Out-Parameter mit 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*). | Zeichenfolgen werden in einer Struktur, die ein In/Out-Parameter ist, übergeben. Die nicht verwaltete Funktion erwartet einen Zeiger auf einen Zeichenpuffer, und die Größe des Puffers ist ein Element der Struktur. | Zeichenfolgen |
In einer Struktur nach Verweis (char[]) . | Zeichenfolgen werden in einer Struktur, die ein In/Out-Parameter ist, übergeben. Die nicht verwaltete Funktion erwartet einen eingebetteten Zeichenpuffer. | OSInfo |
In einer Klasse nach Wert (char*). | Zeichenfolgen werden in einer Klasse übergeben (eine Klasse ist ein In/Out-Parameter). Die nicht verwaltete Funktion erwartet einen Zeiger auf einen Zeichenpuffer. | OpenFileDlg |
In einer Klasse nach Wert (char[]) . | Zeichenfolgen werden in einer Klasse übergeben (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. | Arrays |
Als ein Array von Strukturen, das Zeichenfolgen nach Wert enthält. | Erstellt ein Array von Strukturen, das Zeichenfolgen enthält, und das Array wird nach Wert übergeben. | Arrays |
Siehe auch
Zusammenarbeit auf GitHub
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.