Partilhar via


Sem verificação de sufixo A/W em plataformas não-Windows

Os tempos de execução do .NET deixaram de adicionar um sufixo A ou W aos nomes de exportação de função ao procurar por P/Invokes em plataformas que não sejam Windows.

Versão introduzida

5.0

Alterar descrição

O Windows tem uma convenção de adicionar um A ou W sufixo aos nomes de função do SDK do Windows, que correspondem à página de código do Windows e às versões Unicode, respectivamente.

Em versões anteriores do .NET, os runtimes CoreCLR e Mono adicionavam um sufixo A ou W ao nome de exportação durante o processo de descoberta para P/Invokes em todas as plataformas.

No .NET 5 e versões posteriores, A ou W são sufixos adicionados ao nome de exportação durante a descoberta de exportação apenas no Windows. Em plataformas Unix, o sufixo não é adicionado. A semântica de ambos os tempos de execução na plataforma Windows permanece inalterada.

Motivo da mudança

Esta alteração foi feita para simplificar os testes entre plataformas. É uma sobrecarga que não deve ser incorrida, dado que as plataformas que não são do Windows não contêm essa semântica.

Para atenuar a alteração, você pode adicionar manualmente o sufixo desejado em plataformas que não sejam Windows. Por exemplo:

[DllImport(...)]
extern static void SetWindowTextW();

APIs afetadas