我刚在VS 2010中启动了一个新的win32
控制台应用程序,并在即将推出的向导中将Additional options
属性设置为precompiled header
。
基于one of my previous questions我决定使用以下主要原型:
int main(int argc, char* argv[])
我还将项目的Character Set
属性更改为Use Multi-Byte Character Set
。
但是,以下代码:
system("pause");
会产生这两个错误:
error C3861: 'system': identifier not found
IntelliSense: identifier "system" is undefined
之前我有同样的经历,没有错误!
谁能告诉我什么是错的?
答案 0 :(得分:7)
在C ++中,您必须包含包含函数声明的相应头文件才能使用它,否则您将收到有关未找到标识符的编译器错误。
对于system
函数,它在stdlib.h
头文件中定义。
因此,在代码文件的顶部(或在预编译的头文件中),添加行
#include <stdlib.h>
(您使用尖括号而不是引号,因为stdlib.h
是在构建工具先前已被告知的位置找到的标头;这包括系统标头目录和构建配置专门要求的其他目录。 )
除此之外,我强烈使用多字节字符集(所有新的Windows应用程序应支持Unicode)或system
函数推荐 ,尤其 system("pause")
。
答案 1 :(得分:3)
对我有用的是确保#include "stdafx.h"
是文件中的第一个包含内容。所以#include <iostream>
因此会在此之后。
这样做解决了这个问题。