Ingen A/W-suffixsökning på plattformar som inte är Windows-plattformar
.NET-körningen lägger inte längre till ett A
suffix eller W
suffix för funktionsexportnamn under avsökning för P/Invokes på plattformar som inte är Windows-plattformar.
Version introducerad
5,0
Ändra beskrivning
Windows har en konvention om att lägga till ett A
eller W
suffix till Windows SDK-funktionsnamn, vilket motsvarar Windows-kodsidan respektive Unicode-versionerna.
I tidigare versioner av .NET lägger både CoreCLR- och Mono-körningen till ett A
eller W
suffix till exportnamnet under exportidentifieringen för P/Invokes på alla plattformar.
I .NET 5 och senare versioner läggs ett A
suffix eller W
suffix till i exportnamnet endast under exportidentifiering i Windows. På Unix-plattformar läggs suffixet inte till. Semantiken för båda körningarna på Windows-plattformen förblir oförändrad.
Orsak till ändringen
Den här ändringen gjordes för att förenkla plattformsoberoende avsökning. Det är omkostnader som inte bör uppstå, med tanke på att icke-Windows-plattformar inte innehåller den här semantiken.
Rekommenderad åtgärd
För att minimera ändringen kan du lägga till önskat suffix manuellt på plattformar som inte är Windows-plattformar. Till exempel:
[DllImport(...)]
extern static void SetWindowTextW();