Freigeben über


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

Die .NET-Runtimes fügen bei der Suche nach P/Invokes auf Nicht-Windows-Plattformen keine A- oder W-Suffixe mehr zu Funktionsexportnamen hinzu.

Eingeführte Version

5.0

Änderungsbeschreibung

Windows hat eine Konvention, einen A oder W Suffix zu Windows SDK-Funktionsnamen hinzuzufügen, die jeweils der Windows-Codeseite- und Unicode-Version entsprechen.

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

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

Grund für Änderung

Diese Änderung wurde vorgenommen, um plattformübergreifendes Probing zu vereinfachen. Der Aufwand sollte nicht entstehen, da Nicht-Windows-Plattformen diese Semantik nicht enthalten.

Um die Änderung zu mindern, können Sie das gewünschte Suffix manuell auf Nicht-Windows-Plattformen hinzufügen. Beispiel:

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

Betroffene APIs