Frage

Wenn Sie DllImport verwenden, um eine Funktion importieren Sie eine CharSet angeben zu verwenden. Ich bemerkte, dass in C #, C ++ und Visual Basic .Net Runtime standardmäßig mit Ansi statt Unicode für diesen. Also für jeden Systemaufruf, der eine A und eine W-Version der A-Version hat, wird standardmäßig aufgerufen werden. .Net verwendet Unicode intern und wenn ich mich nicht irre neue Versionen von Windows auch alles übersetzen, um Unicode, so bedeutet dies eine Menge zusätzlichen Rangier-Overhead.

Ich habe angewöhnt, immer Unicode-Angabe hier ist dies der richtige Weg, Dinge zu tun oder wird dies zu Problemen führen?

War es hilfreich?

Lösung

Wenn Sie die ANSI-Varianten verwenden, werden Sie Probleme haben, wenn (zum Beispiel) eine Datei mit einem Namen, die nicht in der ANSI-Codepage verwendet wird, dargestellt werden kann. Der einzige Nachteil bei der Verwendung von Unicode ist, dass der Code nicht auch auf den älteren Win9x-Versionen von Windows funktionieren kann (95, 98 und ME).

Es gibt einige Funktionen, bei denen Sie ANSI verwenden müssen, weil sie in der Tat die Verwendung ASCII (GetProcAddress zum Beispiel).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top