FIX: _getmbp CRT Function Does Not Return Correct Value (171543)



The information in this article applies to:

  • The C Run-Time (CRT), when used with:
    • Microsoft Visual Studio 97

This article was previously published under Q171543

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:

170365 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;
}
				

Modification Type:MajorLast Reviewed:10/17/2003
Keywords:kbBug kbCRT kbfix kbVS97sp1fix kbVS97sp2fix KB171543