Share via


Marshalling di stringhe

Platform invoke copia parametri stringa, convertendoli dal formato .NET Framework (Unicode) al formato non gestito (ANSI) all'occorrenza. Dato che le stringhe gestite non sono modificabili, platform invoke non le copia di nuovo dalla memoria non gestita alla memoria gestita quando la funzione restituisce il controllo.

La tabella seguente elenca le opzioni di marshalling per le stringhe con la descrizione dell'utilizzo e un collegamento all'esempio .NET Framework corrispondente.

String Descrizione Esempio
Per valore. Passa le stringhe come parametri in. MsgBox
Come risultato. Restituisce le stringhe da codice non gestito. Stringhe
Per riferimento. Passa le strutture come parametri in/out tramite StringBuilder. Buffer
In una struttura per valore. Passa le stringhe in una struttura che è un parametro in. Struct
In una struttura per riferimento (char*). Passa le stringhe in una struttura che è un parametro in/out. La funzione non gestita prevede un puntatore a un buffer di caratteri e le dimensioni del buffer sono un membro della struttura. Stringhe
In una struttura per riferimento (char[]). Passa le stringhe in una struttura che è un parametro in/out. La funzione non gestita prevede un buffer di caratteri incorporati. OSInfo
In una classe per valore (char*). Passa le 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 le stringhe in una classe (una classe è un parametro in/out). La funzione non gestita prevede un buffer di caratteri incorporati. OSInfo
Come matrice di stringhe per valore. Crea una matrice di stringhe passata per valore. Matrici
Come matrice di strutture che contengono le stringhe per valore. Crea una matrice di strutture che contengono le stringhe e la matrice viene passata per valore. Matrici

Vedi anche