Condividi tramite


Gestione delle stringhe

Platform invoke copia i parametri stringa, convertendoli dal formato .NET Framework (Unicode) al formato NON gestito (ANSI), se necessario. Poiché le stringhe gestite non sono modificabili, platform invoke non le copia dalla memoria non gestita alla memoria gestita quando la funzione restituisce.

La tabella seguente elenca le opzioni di marshalling per le stringhe, ne descrive l'utilizzo e fornisce un collegamento all'esempio .NET Framework corrispondente.

Stringa Descrizione Esempio
Per valore. Passa stringhe come parametri di input. MsgBox
Di conseguenza. Restituisce stringhe da codice non gestito. Stringhe
Per riferimento. Passa stringhe come parametri In/Out usando StringBuilder. buffer
In una struttura basata sul valore. Passa stringhe in una struttura che è un parametro In. Struct
In una struttura per riferimento (char*). Passa stringhe in una struttura che è un parametro In/Out. La funzione non gestita prevede un puntatore a un buffer di caratteri e la dimensione del buffer è un membro della struttura. Stringhe
In una struttura che utilizza il riferimento (char[]). Passa stringhe in una struttura che è un parametro In/Out. La funzione non gestita prevede un buffer di caratteri incorporato. OSInfo
In una classe per valore (char*).. Passa stringhe in una classe (una classe è un parametro In/Out). La funzione non gestita prevede un puntatore a un buffer di caratteri. OpenFileDlg
In una classe per valore (char[]). Passa stringhe in una classe (una classe è un parametro In/Out). La funzione non gestita prevede un buffer di caratteri incorporato. OSInfo
Come matrice di stringhe per valore. Crea un array di stringhe che viene passato per valore. matrici
Come matrice di strutture che contengono stringhe per valore. Crea una matrice di strutture che contengono stringhe e la matrice viene passata per valore. matrici

Vedere anche