Quando si esegue il marshalling di stringhe come ANSI o come Auto in Win9x, alcuni caratteri potrebbero essere modificati. ...

Quando si esegue il marshalling di stringhe come ANSI o come Auto in Win9x, alcuni caratteri potrebbero essere modificati. Se è attivato il mapping più appropriato, verrà eseguito il marshalling delle stringhe differenti in Unicode in identiche stringhe ANSI e questo potrebbe indurre a decisioni di sicurezza non corrette. Disattivando il mapping più appropriato si riduce il rischio poiché tutti i caratteri privi di un equivalente vengono mappati in '?'. Inoltre, CharSet.Ansi è l'impostazione predefinita per il marshalling di tutte le stringhe. Il marshalling Unicode deve essere specificato esplicitamente come un'impostazione CharSet di DllImport o StructLayout oppure come un attributo MarshalAs con Unicode o dipendente dal sistema come UnmanagedType.