ошибка C3861: «система»: идентификатор не найден

Я только начал новый 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

У меня был такой же опыт, и ошибок не было!
Кто-нибудь может подсказать мне, что не так?

2

Решение

В C ++ вы должны включить соответствующий заголовочный файл, который содержит объявление функции, чтобы использовать ее, иначе вы получите ошибку компилятора о том, что идентификатор не найден.

В случае с system функция, это определено в stdlib.h заголовочный файл

Итак, в начало вашего файла кода (или в вашем предварительно скомпилированном заголовочном файле) добавьте строку

#include <stdlib.h>

(Вы используете угловые скобки вместо кавычек, потому что stdlib.h найден ли заголовок в том месте, о котором ранее сообщалось инструменту сборки; это включает в себя каталоги системных заголовков и другие каталоги, которые ваша конфигурация сборки специально требует.)

Помимо этого я сильно рекомендую против используя либо многобайтовый набор символов (все новые приложения Windows должны поддерживать Unicode), либо system функция, особенно system("pause"),

7

Другие решения

Для меня работало то, что #include "stdafx.h" был ПЕРВЫЙ ВКЛЮЧЕН в файл. Так #include <iostream> поэтому будет после этого.

Это решило проблему.

3

По вопросам рекламы [email protected]