Autor Beitrag
netspy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 75



BeitragVerfasst: Di 10.04.07 02:14 
Ich musste gerade feststellen, dass sich die API-Funktion CompareString(W) unter Windows Vista anders verhält als unter XP und kleiner. Der Aufruf von...

ausblenden Delphi-Quelltext
1:
CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, 'GRÜN', Length('GRÜN'), 'GRUEN', Length('GRUEN'))					


... liefert unter Vista CSTR_EQUAL als Ergebnis zurück. Selbst wenn ich statt LOCALE_USER_DEFAULT mit MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT) eine englische Locale mitgeben, kommt dieses Ergebnis. Die Unterschiede zwischen Vista und XP sind übrigens nicht auf deutsche Umlaute beschränkt. Bspw. wird chinesischer Text bei gleichen Einstellungen und gleicher Locale komplett anders sortiert.

Die verschiedenen in Vista hinzugekommenen Flags haben offenbar auch keinen Einfluss auf das Ergebnis.

Hat jemand eine Idee, wie ich das von XP bekannte Verhalten auch unter Vista erreichen kann?

_________________
So Long, and Thanks for All the Fish.
Bernhard Geyer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 721
Erhaltene Danke: 3



BeitragVerfasst: Di 10.04.07 07:16 
Hast du nicht auch schon bei DP (www.delphipraxis.net/topic106943.html)?
Falls jemand Antworten sollte, sollte er schon den Stand dort kennen.
netspy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 75



BeitragVerfasst: Di 10.04.07 11:27 
Ich habe bei Delphi-PRAXIS nur ganz zum Schluss mal nachgefragt und bisher keine Antwort erhalten. Der Autor dieses Threads hat mich nur auf das eigentlich Problem gebracht, eine Lösung fehlt aber noch.

_________________
So Long, and Thanks for All the Fish.