Я работаю над проектом в Visual Studio 2010. Предполагается, что мой проект не ограничивается Windows, однако один из файлов зависит от ОС.
По этой причине у меня есть #include <windows.h>
только в одном файлах .cpp . Ни один другой файл не содержит эти .cpp файлы. Следовательно, логически заголовок windows.h
должен быть невидим для остальной части решения.
Это означает, что у меня нет конфликтов имен с объявлениями в библиотеке Windows во всех файлах, кроме этого .cpp , и мой проект компилируется просто отлично.
Однако IntelliSense продолжает настаивать на том, что у меня конфликт имен. Когда я нажимаю Ctrl+Space
, IntelliSense предлагает идентификаторы из windows.h
. И это в области, где windows.h
должно быть невидимым!
Есть ли настройка, которую я могу изменить, чтобы остановить это раздражающее поведение?
Я на 100% уверен, что проблема не в структуре моего решения, потому что если я использую идентификатор, уже определенный в windows.h
в другой части моего проекта, компилятор не распознает его и не компилировать ... но IntelliSense распознает это!