Compartilhar via


Nenhuma investigação de sufixo A/W em plataformas não Windows

Os runtimes do .NET não adicionam mais um sufixo A ou W aos nomes de exportação de funções durante a sondagem de P/Invokes em plataformas não-Windows.

Versão introduzida

5,0

Descrição da alteração

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

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

No .NET 5 e versões posteriores, um sufixo A ou W é adicionado ao nome de exportação durante a detecção de exportação somente no Windows. Em plataformas Unix, o sufixo não é adicionado. A semântica de ambos os runtimes na plataforma Windows permanece inalterada.

Motivo da alteração

Essa alteração foi feita para simplificar a investigação entre plataformas. É uma sobrecarga que não deve ser incorrida, considerando 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 são do Windows. Por exemplo:

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

APIs afetadas