stdafx.h в заголовочные файлы

0

У меня есть MyClass.cpp и MyClass.h. Поскольку MyClass.cpp имеет #include "MyClass.h" я помещаю stdafx.h в MyClass.h. Во время компиляции я получил ошибку:

неожиданный конец файла при поиске прекомпилированного заголовка. Вы забыли добавить '#include "stdafx.h" в свой источник?

Зачем? Если MyClass.cpp включает MyClass.h он должен включать все строки MyClass.h и эти строки содержат stdafx.h.

  • 0
    Командная строка для компилятора будет включать в себя /Yu"stdafx.h" , так что" stdafx.h "должен быть первым найденным заголовком, в противном случае он выдаст ошибку C1010
  • 1
    Смотрите: что такое «stdafx.h» в Visual Studio?
Теги:
visual-c++

2 ответа

1
Лучший ответ

Неважно, если вы помещаете #include "stdafx.h" в свой.h файл. Компилятору все равно. Он хочет видеть #include "stdafx.h" в качестве первой строки вашего.cpp файла, если только у вас нет "Не использовать предварительно скомпилированные заголовки" в качестве параметра компилятора для вашего исходного файла. Обоснование имеет отношение к предварительно скомпилированным заголовкам. Я не могу предложить техническое объяснение, но просто это сделает жизнь проще.

1

Другое дело, если вы хотите, чтобы MyClass.h был предварительно скомпилирован.

  • MyClass.h не включает stdafx.h
  • stdafx.h включает MyClass.h
  • MyClass.cpp включает stdafx.h в качестве первой директивы. Для ясности кода он может также включать MyClass.h.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню