Visual Studio C — невозможно ссылаться на файл внутри анализируемого проекта

#c #visual-studio

#c #visual-studio

Вопрос:

Я следую этому руководству, где в 15:30 адрес внутри репозитория проекта вводится следующим образом:

 ShaderProgramSource source = ParseShader("res/shaders/Basic.shader");
 

Я следовал руководству с самого начала буква за буквой, и вот тут все начинает рушиться, я не могу заставить ссылки на этот файл .shader работать, если я не поставлю ../ в начале:

 ShaderProgramSource source = ParseShader("../res/shaders/Basic.shader");
 

и даже когда я это делаю, MSVC или OpenGL не жалуются, но с этого момента код просто не работает. Моя геометрия визуализируется, но шейдер не работает. Есть ли какие-либо настройки Visual Studio, которые меня саботируют?

Папка res находится внутри каталога моего проекта:

введите описание изображения здесь

И мой рабочий каталог:

введите описание изображения здесь

Комментарии:

1. Если вам нужно добавить ../ в путь к файлу, это означает, что файл находится в родительской папке res/shaders/Basic . Возможно, дважды проверьте этот каталог и его подкаталоги, убедитесь, что вы знаете, где находится файл, а затем вызовите функцию с правильным путем.

2. Я отредактировал исходное сообщение и добавил несколько скриншотов.

3. Странно, что ../res работает. Я бы не ожидал такого от той информации, которую вы опубликовали. Я бы ожидал res/shaders/Basic.shader , что буду работать. Я предполагаю, что в вашем c проекте нет кода, который изменял бы рабочий каталог.

4. Функции OpenGL не выделяют синтаксис после этой строки, так что здесь что-то идет не так. OpenGL ужасен в отладке ошибок, поэтому я не знаю, что именно и почему он перестает жаловаться после того, как я добавляю ../

5. ../res/shaders/Basic.shader не должно иметь никакого отношения к подсветке синтаксиса вообще. Шейдер загружается во время выполнения.