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.

Per attenuare la modifica, è possibile aggiungere manualmente il suffisso desiderato nelle piattaforme non Windows. Ad esempio:

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

API interessate