Marshalling Strings
Het platform roept tekenreeksparameters aan en converteert deze vanuit de .NET Framework-indeling (Unicode) naar de niet-beheerde indeling (ANSI), indien nodig. Omdat beheerde tekenreeksen onveranderbaar zijn, worden deze niet terug gekopieerd van onbeheerd geheugen naar beheerd geheugen wanneer de functie terugkeert.
De volgende tabel bevat marshallopties voor tekenreeksen, beschrijft het gebruik en biedt een koppeling naar het bijbehorende .NET Framework-voorbeeld.
String | Beschrijving | Voorbeeld |
---|---|---|
Op waarde. | Geeft tekenreeksen door als In-parameters. | Msgbox |
Als resultaat. | Retourneert tekenreeksen uit niet-beheerde code. | Tekenreeksen |
Ter referentie. | Geeft tekenreeksen door als In/Out-parameters met behulp van StringBuilder. | Buffers |
In een structuur op waarde. | Geeft tekenreeksen door in een structuur die een In-parameter is. | Structs |
In een structuur op basis van verwijzing (char*). | Geeft tekenreeksen door in een structuur die een in/uit-parameter is. De onbeheerde functie verwacht een aanwijzer naar een tekenbuffer en de buffergrootte is lid van de structuur. | Tekenreeksen |
In een structuur op basis van verwijzing (char[]). | Geeft tekenreeksen door in een structuur die een in/uit-parameter is. De onbeheerde functie verwacht een ingesloten tekenbuffer. | OSInfo |
In een klasse op waarde (char*). | Geeft tekenreeksen door in een klasse (een klasse is een In/Out-parameter). De onbeheerde functie verwacht een aanwijzer naar een tekenbuffer. | OpenFileDlg |
In een klasse op waarde (char[]). | Geeft tekenreeksen door in een klasse (een klasse is een In/Out-parameter). De onbeheerde functie verwacht een ingesloten tekenbuffer. | OSInfo |
Als matrix van tekenreeksen op waarde. | Hiermee maakt u een matrix met tekenreeksen die door de waarde worden doorgegeven. | Arrays |
Als matrix met structuren die tekenreeksen per waarde bevatten. | Hiermee maakt u een matrix met structuren die tekenreeksen bevatten en de matrix wordt doorgegeven door een waarde. | Arrays |
Zie ook
Met ons samenwerken op GitHub
De bron voor deze inhoud vindt u op GitHub, waar u ook problemen en pull-aanvragen kunt maken en controleren. Bekijk onze gids voor inzenders voor meer informatie.