Microsoft KB Archive/178529

{|
 * width="100%"|

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

 * }

Q178529

-

The information in this article applies to:


 * Microsoft Win32 Software Development Kit (SDK), on platform(s):
 * the operating system: Microsoft Windows 95

-

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 : kbGrpDSUser kbOSWin95bug

Issue type : kbbug

Technology : kbWin32SDKSearch kbAudDeveloper kbSDKSearch kbWin32sSearch