Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Nota:
Las instrucciones siguientes son para uso de [DllImport] y deben seguirse manualmente para obtener los resultados correctos. En su lugar, los usuarios de .NET 7+ deben considerar el uso [LibraryImport] . Un analizador Roslyn incorporado (habilitado de forma predeterminada) proporcionará las instrucciones necesarias para el atributo [LibraryImport] en tu código.
La forma en que los valores char, y los objetos string y System.Text.StringBuilder se serializan depende del valor del campo CharSet en la estructura o P/Invoke. Puede establecer el CharSet de una P/Invoke estableciendo el campo DllImportAttribute.CharSet al declarar tu P/Invoke. Para establecer el CharSet para un tipo, configure el campo StructLayoutAttribute.CharSet en la declaración de su clase o estructura. Cuando estos campos de atributo no están configurados, es necesario que el compilador de lenguaje determine qué CharSet usar. C#, Visual Basic y F# usan el None conjunto de caracteres de forma predeterminada, que tiene el mismo comportamiento que el conjunto de Ansi caracteres.
System.Runtime.InteropServices.DefaultCharSetAttribute Si se aplica en el módulo en código de C# o Visual Basic, el compilador de C# o Visual Basic emitirá el proporcionado CharSet de forma predeterminada en lugar de usar CharSet.None. F# no admite el DefaultCharSetAttribute y siempre emite el CharSet.None por defecto.
En la tabla siguiente se muestra una asignación entre cada juego de caracteres y cómo se representa un carácter o una cadena cuando se serializan con ese juego de caracteres:
CharSet valor |
Windows | .NET Core 2.2 y versiones anteriores en Unix | .NET Core 3.0 y versiones posteriores y Mono en Unix |
|---|---|---|---|
Ansi |
char (página de códigos de Windows (ANSI) predeterminada del sistema) |
char (UTF-8) |
char (UTF-8) |
Unicode |
wchar_t (UTF-16) |
char16_t (UTF-16) |
char16_t (UTF-16) |
Auto |
wchar_t (UTF-16) |
char16_t (UTF-16) |
char (UTF-8) |
Asegúrese de saber qué representación espera su representación nativa al seleccionar el conjunto de caracteres.