BUG: LSTRCMP and LSTRCMPI Fails with Non-US Regional Settings

ID: Q178529


The information in this article applies to:
  • Microsoft Win32 Software Development Kit (SDK)
    on the following platforms: Win95


SYMPTOMS

Under the following conditions, the LSTRCMP and LSTRCMPI string-comparison APIs may erroneously report that two strings fail to compare:

  1. Windows 95 is configured for a Regional Setting other than "English (United States)."


  2. One of the strings is located in a 16-bit discardable code segment which has been discarded.



CAUSE

If the regional setting is anything other than English (United States), the string-compare call is thunked to 32-bit string-compare functions in Kernel32. The thunking code does not force a segment reload if the segment containing a string that is supposed to be compared has been discarded.


RESOLUTION

It may be possible to work around this problem using one of the following methods:

  • If a segment contains a string that is going to be compared with LSTRCMP or LSTRCMPI, do not mark that segment as discardable.


  • Touch the string in some way to force the segment to be reloaded if it is discarded before calling LSTRCMP or LSTRCMPI.



STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.


MORE INFORMATION

For additional information, please see the following article in the Microsoft Knowledge Base:

Q180727 Error Message: Property or Method Not Found

Additional query words:

Keywords : kbGrpUser kbWinOS95bug
Version : WINDOWS:
Platform : WINDOWS
Issue type : kbbug


Last Reviewed: December 7, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.