Partager via


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

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

Version introduite

5,0

Description de la modification

Windows a la convention d’ajouter un suffixe A ou W aux noms de fonctions du SDK Windows ; ces suffixes correspondent à la page de codes Windows et aux versions Unicode, respectivement.

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 d’exportation pour P/Invokes sur toutes les plateformes.

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

Raison du changement

Cette modification a été apportée pour simplifier l’interrogation multiplateforme. Il s’agit d’une surcharge qui ne devrait pas être encourue, é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