Microsoft KB Archive/151898

From BetaArchive Wiki

Article ID: 151898

Article Last Modified on 7/5/2005



APPLIES TO

  • Microsoft Visual C++ 2.0 Professional Edition
  • Microsoft Visual C++ 2.1
  • Microsoft Visual C++ 2.2
  • Microsoft Visual C++ 4.0 Standard Edition
  • Microsoft Visual C++ 4.1 Subscription
  • Microsoft Visual C++ 4.2 Enterprise Edition
  • Microsoft Visual C++ 4.2 Enterprise Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 4.2 Professional Edition
  • Microsoft Visual C++ 4.2 Professional Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++ 6.0 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition



This article was previously published under Q151898

SYMPTOMS

The compiler ignores some or all of the Command Line options that appear after the /I switch.

CAUSE

The compiler incorrectly parses the additional Include Directory Command Line switch if its argument ends with a backslash followed by a quotation mark. The compiler interprets the \" sequence as meaning the path contains a quotation mark.

If you set the additional Include Directories from within Developer Studio, double quotes are automatically placed around the directory name. If there is a backslash at the end of the directory name, this problem occurs.

RESOLUTION

Remove the trailing backslash character from the Include Directory.

STATUS

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

MORE INFORMATION

Sample Code

// Compile options needed to generate error (compiler will not detect
// the /D"_CMDLINE":)
//    CL /c test.cpp /I"test\" /D"_CMDLINE"
// 
// Compile options needed for successful compiling (compiler will
// detect the /D"_CMDLINE":)
//    CL /c test.cpp /I"test" /D"_CMDLINE"

// test.cpp
// 
#ifdef _CMDLINE
#pragma message("Program compiled with _CMDLINE defined.")
#else
#pragma message("Program compiled without _CMDLINE defined.")
#endif
                


Additional query words: kbVC400bug

Keywords: kbbug kbcompiler KB151898