Ошибка cannot open source file “stdafx.h”

147
28 июля 2019, 10:40

Мне достались исходники небольшого проекта из нескольких файлов. При открытии его в visual studio еще до начала компиляции в редакторе кода в каждом файле подчеркивается строка

#include "stdafx.h"

Пишет:

cannot open source file "stdafx.h"

Сами файлы stdafx.h и stdafx.cpp присутствуют в директории проекта. 1. Как решить проблему? 2. Может ли эта проблема возникать из-за того, например, что проект был сделал в одной версии vs, а я открываю его в другой? Если да, как узнать исходную версию студии? Доступа к разработчикам проекта у меня нету. Спасибо.

Answer 1

Скорее всего, в проект не включены stdafx.h и возможно, stdafx.cpp.

  1. Как решить проблему?

Добавьте stdafx.h и stdafx.cpp в проект. Выберите Project / Add Existing Item... и добавьте.

  1. Может ли эта проблема возникать из-за того, например, что проект был сделал в одной версии vs, а я открываю его в другой?

Не может.

Если да, как узнать исходную версию студии?

Из исходного (неконвертированного) файла проекта. В VS 6.0, к примеру, это проект.dsp. В VS2008 это проект.vcproj, В VS2017 это проект.vcxproj.

UPD Ответ на вопрос в комментариях:

если же я создаю в директории проекта папку dir и помещаю туда файлы sec.cpp и sec.h. то строка #include "stdafx.h" в этих файлах уже подчеркивается. как быть?

Нужно указать относительный путь к stdafx.h, то есть #include "..\stdafx.h".

Даже в достаточно большом проекте нет необходимости в подкаталогах. Реально они нужны в достаточно редких случаях, например, отделить файлы сторонних производителей. Для логического разбиения надо использовать подкаталоги проекта, а не файловые. VS стандартно создает Include/Source/Resource, но вам же никто не запрещает создать вместо них свои.

READ ALSO
sregex_iterator не находит соответствий на строке

sregex_iterator не находит соответствий на строке

У меня есть строка - html код, который нужно распарсить с помощью регулярных выражений regexМне нужно записать в вектор std::vector все URL'ы на странице,...

158
extern Template from function in Class

extern Template from function in Class

Пробую унести из декларации класса Template в реализацию, все попытки приводят к ругани компилятора, не совсем понимаю как работает в этом случае...

144