Nessun probing di suffisso A/W su piattaforme non Windows
I runtime .NET non aggiungono più un suffisso A
o W
ai nomi di esportazione delle funzioni durante il probe per P/Invoke su piattaforme non Windows.
Versione introdotta
5.0
Descrizione delle modifiche
Windows ha una convenzione di aggiunta di un suffisso A
o W
ai nomi di funzione di Windows SDK, che corrispondono rispettivamente alla tabella codici di Windows e alle versioni Unicode.
Nelle versioni precedenti di .NET, sia i runtime CoreCLR sia Mono aggiungono un suffisso A
o W
al nome di esportazione durante l'individuazione dell'esportazione per P/Invokes in tutte le piattaforme.
In .NET 5 e versioni successive viene aggiunto un suffisso A
o W
al nome di esportazione solo durante l'individuazione dell'esportazione in Windows. Nelle piattaforme Unix il suffisso non viene aggiunto. La semantica di entrambi i runtime nella piattaforma Windows rimane invariata.
Motivo della modifica
Questa modifica è stata apportata per semplificare il probe multipiattaforma. È un sovraccarico che non deve essere generato, dato che le piattaforme non Windows non contengono questa semantica.
Azione consigliata
Per attenuare la modifica, è possibile aggiungere manualmente il suffisso desiderato nelle piattaforme non Windows. Ad esempio:
[DllImport(...)]
extern static void SetWindowTextW();