Hallo!
Von Windows9x bis XP gibt der folgende Code unter Win32 wie auch .NET den Wert 1 zurück. Die Zeichenketten sind unterschiedlich. Was nach deutschen Gesichtspunkten ja auch richtig ist.
Unter Vista geben die Funktionen aber CSTR_EQUAL als Ergebnis zurück, d.h. die Zeichenketten sind gleich.
Woran liegt dieses unterschiedliche Verhalten? Was ist unter Vista anders?
Dieses Fehlverhalten hat z.B. fatale Folgen für TStringList.IndexOf und TStringList.IndexOfName in Delphi, da diese jetzt unter Vista anders arbeiten.
Viele Grüße,
Sven Harazim
Von Windows9x bis XP gibt der folgende Code unter Win32 wie auch .NET den Wert 1 zurück. Die Zeichenketten sind unterschiedlich. Was nach deutschen Gesichtspunkten ja auch richtig ist.
Code:
Win32 CompareString(LOCALE_USER_DEFAULT, 0, 'HÜBNER', Length('HÜBNER'),'HUEBNER', Length('HUEBNER')) .NET String.Compare("HÜBNER", "HUEBNER")
Unter Vista geben die Funktionen aber CSTR_EQUAL als Ergebnis zurück, d.h. die Zeichenketten sind gleich.
Woran liegt dieses unterschiedliche Verhalten? Was ist unter Vista anders?
Dieses Fehlverhalten hat z.B. fatale Folgen für TStringList.IndexOf und TStringList.IndexOfName in Delphi, da diese jetzt unter Vista anders arbeiten.
Viele Grüße,
Sven Harazim
Comment