3

我刚刚win32在 VS 2010 中启动了一个新的控制台应用程序,并将Additional options属性设置为precompiled header在即将到来的向导中。

基于我之前的一个问题,我决定使用以下主要原型:

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

我之前也有同样的经历,没有错误!
谁能建议我有什么问题?

4

2 回答 2

7

在 C++ 中,您必须包含包含函数声明的适当头文件才能使用它,否则您将收到有关未找到标识符的编译器错误。

system函数的情况下,它是在stdlib.h头文件中定义的。

因此,在代码文件(或预编译的头文件)的顶部,添加以下行

#include <stdlib.h>

(您使用尖括号而不是引号,因为stdlib.h它是在先前告知构建工具的位置找到的标头;这包括系统标头目录和您的构建配置特别需要的其他目录。)

除此之外,我强烈建议不要使用多字节字符集(所有新的 Windows 应用程序都应该支持 Unicode)或system函数, 尤其是 system("pause").

于 2013-07-07T10:49:38.570 回答
3

对我有用的是确保它#include "stdafx.h"是文件中的第一个包含。因此#include <iostream>在此之后也是如此。

这样做解决了这个问题。

于 2015-07-19T13:20:25.243 回答