c++ - 为什么这段代码不能在 Visual Studio 2010 中编译和运行?

标签 c++ visual-studio-2010 ansi

我正在尝试将 Visual Studio 2010 设置为进行普通的旧式 ANSI 编译,而无需任何类型的 Microsoft 扩展。

我从一个空的项目模板开始,因为在 2010 年似乎不再有一个普通的 ANSI 项目模板。

然后我设置

属性 -> 配置属性 -> C/C++ -> 语言 -> 禁用扩展 = 是 (/Za)

这是我的代码:

#include <iostream>

int main( int argc, const char* argv[] )
{
  std::cout << "Hello World!";
  return 0;
}

错误如下:

1>------ Build started: Project: ansi_test, Configuration: Release Win32 ------
1>Build started 4/27/2011 4:20:00 PM.
1>InitializeBuildStatus:
1>  Touching "Release\ansi_test.unsuccessfulbuild".
1>ClCompile:
1>  Main.cpp
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(636): error C3861: 'width': identifier not found
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(636): error C3861: 'width': identifier not found
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(639): error C3861: 'flags': identifier not found
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(643): error C2227: left of '->sputc' must point to class/struct/union/generic type
1>          type is ''unknown-type''
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(643): error C2780: 'void std::fill(_FwdIt,_FwdIt,const _Ty &)' : expects 3 arguments - 0 provided
1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2712) : see declaration of 'std::fill'
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(643): error C3861: 'rdbuf': identifier not found
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(648): error C2227: left of '->sputc' must point to class/struct/union/generic type
1>          type is ''unknown-type''
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(648): error C3861: 'rdbuf': identifier not found
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(654): error C2227: left of '->sputc' must point to class/struct/union/generic type
1>          type is ''unknown-type''
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(654): error C2780: 'void std::fill(_FwdIt,_FwdIt,const _Ty &)' : expects 3 arguments - 0 provided
1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(2712) : see declaration of 'std::fill'
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(654): error C3861: 'rdbuf': identifier not found
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(659): error C3861: 'width': identifier not found
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.63

我如何获得最基本的 C++ 代码以干净地编译?

最佳答案

如果您 define wchar_t as native type,错误就会消失.

关于c++ - 为什么这段代码不能在 Visual Studio 2010 中编译和运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5810152/

相关文章:

c++ - 如何在命令行上构建 VC++ 2010 项目?

c - 如何在 ANSI C 中用 NULL 替换字符串中的字符?

c - 函数 fmax 的隐式声明

c - 位移位傻瓜指南?

c++ - 智能感知 : identifier "[blank]" is undefined for each of the variables used in my function

c++ - 奇变量赋值

c++ - VC++的开端

c++ - __FILE__ 编译时的宏操作处理

java - 从 JNI 代码检查 Java 类中是否存在可选字段或方法

visual-studio - CSS 文件无法在 Visual Studio 2010 SP1 中打开?