Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
.NET-runtimer lägger inte längre till ett A-suffix eller ett W-suffix till funktionsexportnamn vid avsökning efter P/Invokes på icke-Windows plattformar.
Version lanserad
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-runtime ett A eller W-suffix till exportnamnet under exportupptäckning 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 ändring
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();