Keine A/W-Überprüfung des Suffixes auf anderen Plattformen als Windows

Die .NET-Runtimes fügen kein A- oder W-Suffix zu Funktionsexportnamen während der Stichprobenentnahme für P/Invokes auf anderen Plattformen als Windows hinzu.

Eingeführt in Version

5.0

Änderungsbeschreibung

Windows umfasst eine Konvention, laut der ein A- oder W-Suffix zu Funktionsnamen des Windows SDKs hinzugefügt werden, die jeweils der Windows-Codeseite und den Unicode-Versionen entsprechen.

In vorherigen Versionen von .NET haben die CoreCLR- und Mono-Runtimes während der Exportermittlung auf allen Plattformen ein A- oder W-Suffix zum Exportnamen für P/Invokes hinzugefügt.

In .NET 5 und höheren Versionen wird ein A- oder W-Suffix nur unter Windows während der Exportermittlung zum Exportnamen hinzugefügt. Auf UNIX-Plattformen wird das Suffix nicht hinzugefügt. Die Semantik beider Runtimes bleiben auf der Windows-Plattform unverändert.

Grund für die Änderung

Diese Änderung wurde zur Vereinfachung der plattformübergreifenden Überprüfung implementiert. Dabei handelt es sich um einen Mehraufwand, der nicht hätte auftreten sollen, da andere Plattformen als Windows diese Semantik nicht aufweisen.

Sie können das gewünschte Suffix auf anderen Plattformen als Windows manuell hinzufügen, um diese Änderung zu umgehen. Zum Beispiel:

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

Betroffene APIs