Dela via


Rangersträngar

Plattformsanrop kopierar strängparametrar och konverterar dem från .NET Framework-formatet (Unicode) till det icke-hanterade formatet (ANSI) om det behövs. 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 marshallingsalternativ för strängar, beskriver deras användning och en länk till motsvarande .NET Framework-exempel.

Sträng Beskrivning Exempel
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