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 DefaultCharSetAttributee 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.