Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

CompareString Vista Workaround

  Alt 29. Mär 2008, 21:47
In Windows Vista ist ein Bug, der dazu führt dass ein AnsiCompareText('Hübner', 'Huebner') = 0 liefert, also beide Namen als gleicht erkannt werden. Der Bug wurde bereits
hier diskutiert und auch Microsoft ist er bewusst. Leider wurde der nötige Bugfix nicht in Vista SP1 aufgenommen (nachzulesen hier). Im Windows 2008 Server ist der Bug jedoch behoben. Das führt nun natürlich zu dem Phänomen, dass unter Windows 9x/ME/NT, 2000, XP und 2008 sich die Programme korrekt verhalten und unter Vista eben nicht.

Da ich damit nicht leben kann habe ich mich mal hingesetzt und einen API Hook für CompareStringA und CompareStringW geschrieben. Dadurch ist auch lstrcmp und Konsorten abgedeckt, da diese wiederum CompareString aufrufen.


Was haltet ihr von dem Patch. Ist er korrekt (bei CompareStringA bin ich mir wegen der CodePage nicht ganz sicher). Sollte ich daraus einen System weiten Hook machen um allen Programmen korrigierte CompareString Funktionen zu bieten?
Angehängte Dateien
Dateityp: zip comparestringfix_113.zip (3,3 KB, 21x aufgerufen)
  Mit Zitat antworten Zitat