FIX: _getmbp CRT Function Does Not Return Correct Value

ID: Q171543


The information in this article applies to:
  • The C Run-Time (CRT), included with:
    • Microsoft Visual C++, 32-bit Editions, versions 5.0sp1, 5.0sp2
    • Microsoft Visual Studio versions 97, 97sp1, 97sp2


SYMPTOMS

The C Run-time (CRT) Library function _getmbcp is supposed to return 0 if a single-byte code page is in use. However, this is not true with the CRT Library shipped with Visual C++ 5.0 in Visual Studio 97 Service Pack 1 and Service Pack 2. The function returns the current code page value irrespective of whether it is a single byte or multi byte code page. This behavior breaks existing programs that were using this call primarily to query whether a single-byte code page is active.


STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug has been fixed in Visual Studio 97 Service Pack 3.

For additional information about , please click the article number(s) below to view the article(s) in the Microsoft Knowledge Base:

Q170365 INFO: Visual Studio 97 Service Packs - What, Where, and Why


MORE INFORMATION

The following sample program demonstrates the bug:


//sample.cpp
/* Compiler options: none */ 
#include <mbctype.h>
#include <stdio.h>

main()
{
  printf("The return value from _getmbcp is= %d \n", _getmbcp());
  return 0;
} 

Additional query words:

Keywords : kbCRT kbVC500bug kbVS97bug kbVS97sp1bug kbVS97sp1fix kbVS97sp2bug kbVS97sp2fix
Version : WINNT:5.0sp1,5.0sp2,97,97sp1,97sp2
Platform : winnt
Issue type : kbbug


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