Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
As diretrizes a seguir são para o uso de [DllImport]
e devem ser seguidas manualmente para garantir resultados corretos. Em vez disso, os usuários do .NET 7+ devem considerar o uso [LibraryImport]
. Um analisador Roslyn integrado (habilitado por padrão) fornecerá as diretrizes necessárias para o atributo [LibraryImport]
no seu código.
A maneira pela qual os valores char
, os objetos string
e os objetos System.Text.StringBuilder
realizam marshaling depende do valor do campo CharSet
, no P/Invoke ou na estrutura. Para definir o CharSet
de um P/Invoke, configure o campo DllImportAttribute.CharSet quando declarar o P/Invoke. Para definir o tipo utilizando o CharSet
, defina o campo StructLayoutAttribute.CharSet na declaração de sua classe ou struct. Quando esses campos de atributo não são definidos, cabe ao compilador de idiomas determinar qual CharSet
usar. C#, Visual Basic e F# usam o None conjunto de caracteres por padrão, que tem o mesmo comportamento que o Ansi conjunto de caracteres.
Se o System.Runtime.InteropServices.DefaultCharSetAttribute for aplicado ao módulo no código em C# ou Visual Basic, o compilador correspondente emitirá o fornecido CharSet
por padrão em vez de usar CharSet.None
. O F# não dá suporte ao DefaultCharSetAttribute
e sempre emite CharSet.None
por padrão.
A tabela a seguir mostra um mapeamento entre cada conjunto de caracteres e como um caractere ou cadeia de caracteres é representado quando empacotado com esse conjunto de caracteres:
Valor CharSet |
Windows | .NET Core 2.2 e anterior no Unix | .NET Core 3.0 e posterior e Mono no Unix |
---|---|---|---|
Ansi |
char (a página de código padrão do Windows (ANSI) do 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) |
Verifique qual representação sua representação nativa espera ao escolher seu conjunto de caracteres.