Rangersträngar
Plattform anropar kopierar strängparametrar och konverterar dem från .NET Framework-formatet (Unicode) till det ohanterade 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.
String | beskrivning | Exempel |
---|---|---|
Efter värde. | Skickar strängar som In-parametrar. | Msgbox |
Som resultat. | Returnerar strängar från ohanterad kod. | Strängar |
Som 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. | Structs |
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 pekare till en teckenbuffert och buffertstorleken är medlem i 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 inbäddad teckenbuffert. | OSInfo |
I en klass efter värde (tecken*). | 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 inbäddad teckenbuffert. | OSInfo |
Som en matris med strängar efter värde. | Skapar en matris med strängar som skickas av värde. | Matriser |
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. | Matriser |
Se även
Samarbeta med oss på GitHub
Källan för det här innehållet finns på GitHub, där du även kan skapa och granska ärenden och pull-begäranden. Se vår deltagarguide för mer information.