Partager via


Aucune détection de suffixe A/W sur les plateformes non-Windows

Les runtimes .NET n’ajoutent plus de suffixes A ou W aux noms d’exportation de fonction lors de la recherche des appels P/Invokes sur des plateformes non-Windows.

Version introduite

5,0

Description de la modification

Windows a une convention d'ajouter un suffixe A ou W aux noms de fonctions du SDK de Windows, qui correspondent respectivement à la version page de code Windows et à la version Unicode.

Dans les versions précédentes de .NET, les runtimes CoreCLR et Mono ajoutent un suffixe A ou W au nom d'exportation lors de la découverte de l'exportation pour les P/Invokes sur toutes les plateformes.

Dans .NET 5 et versions ultérieures, un A ou W suffixe est ajouté au nom d’exportation lors de la découverte d’exportation uniquement sur Windows. Sur les plateformes Unix, le suffixe n’est pas ajouté. La sémantique des deux runtimes sur la plateforme Windows reste inchangée.

Raison de la modification

Cette modification a été apportée pour simplifier la détection multiplateforme. Il s’agit d’une surcharge qui ne doit pas être engagée, étant donné que les plateformes non-Windows ne contiennent pas cette sémantique.

Pour atténuer la modification, vous pouvez ajouter manuellement le suffixe souhaité sur les plateformes non-Windows. Par exemple:

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

API affectées