Rangersträngar

Plattformsanrop kopierar strängparametrar och konverterar dem från .NET-strängformatet (Unicode) till ohanterat format (ANSI) vid behov. Eftersom hanterade strängar är oföränderliga kopierar plattformsanrop inte tillbaka dem från ohanterat minne till hanterat minne när funktionen returnerar.

I följande tabell visas marshallingalternativ för strängar, deras användning beskrivs och en länk till motsvarande .NET-exempel tillhandahålls.

String Beskrivning Sample
Efter värde. Skickar strängar som In-parametrar. MsgBox
Som resultat. Returnerar strängar från ohanterad kod. Strängar
Genom referens. Skickar strängar som in-/ut-parametrar med hjälp av StringBuilder. Buffertar
I en struktur efter värde. Skickar strängar i en struktur som är en In-parameter. Strukturer
I en struktur efter referens (char*). Skickar strängar i en struktur som är en in-/ut-parameter. Den ohanterade funktionen förväntar sig en teckenbuffertpekare och buffertstorleken är en del av strukturen. Strängar
I en struktur efter referens (tecken[]). Skickar strängar i en struktur som är en in-/ut-parameter. Den ohanterade funktionen förväntar sig en inbyggd teckenbuffert. OSInfo
I en värdeklass (char*). Skickar strängar i en klass (en klass är en in-/ut-parameter). Den ohanterade funktionen förväntar sig en pekare till en teckenbuffert. OpenFileDlg
I en klass efter värde (char[]). Skickar strängar i en klass (en klass är en in-/ut-parameter). Den ohanterade funktionen förväntar sig en inbyggd teckenbuffert. OSInfo
Som en matris med strängar efter värde. Skapar ett fält med strängar som passerar som värde. arrayer
Som en matris med strukturer som innehåller strängar efter värde. Skapar en matris med strukturer som innehåller strängar och matrisen skickas efter värde. arrayer

Se även