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

Os runtimes do .NET não adicionam mais os sufixos A ou W aos nomes de exportação de função durante a investigação de P/Invokes em plataformas não Windows.

Versão introduzida

5,0

Descrição das alterações

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

Em versões anteriores do .NET, os runtimes CoreCLR e Mono adicionam sufixos A ou W aos nomes de exportação durante a descoberta de exportação de P/Invokes em todas as plataformas.

No .NET 5 e em versões posteriores, sufixos A ou W são adicionados aos nomes de exportação durante a descoberta 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, dado que as plataformas não Windows não contêm essa semântica.

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

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

APIs afetadas