Visual studio 2017: Невозможно открыть включаемый файл 'd3dx9.h', нет такого файла или каталога в статической библиотеке, используемой приложением .exe - PullRequest
0 голосов
/ 23 июня 2019

Я использую Visual Studio 2017, и мне необходимо использовать DirectX9.0 для школьного проекта.

У меня есть решение с 3 проектами. Одна - это статическая библиотека (.lib), другая - приложение (.exe), а другая - проект модульного тестирования:

enter image description here

KB01_Game.exe импортирует KB01_Engine.lib примерно так:

Свойства KB01_Game enter image description here

KB01_Engine.lib содержит ссылки на d3dx9 примерно так (я также попытался изменить порядок этих ссылок DXSDK, но безуспешно):

KB01_Двигатель свойства enter image description here

enter image description here

Файлы в KB01_Engine включают заголовки directx 9, например:

> #include <d3d9.h>
> #include <d3dx9.h>
> #include <dinput.h>

Я тоже пробовал кавычки, но безуспешно

 > #include "d3d9.h"
 > #include "d3dx9.h"
 > #include "dinput.h"

KB01_Двигатель строится успешно. Я не получаю ошибок, утверждая, что отсутствуют включаемые файлы. Но как только я собираю KB01_Game, это дает мне эту ошибку, которая также включена в заголовок, которую я изо всех сил пытался исправить ...

enter image description here

Внешние зависимости / заголовочные файлы для directx появляются в KB01_Engine, как и ожидалось. Когда я щелкаю правой кнопкой мыши на d3dx9.h и выбираю опцию «Открыть документ« d3dx9.h »», он фактически открывает правильный документ. Нет признаков того, что он не может найти файл. Я твердо предполагаю, что эта ошибка сборки происходит из-за того, что я использую движок KB01 как статическую библиотеку, а не как обычное приложение.

enter image description here

Если вы хотите просмотреть код, он доступен здесь: https://github.com/bdeboer95/KB01-Revamped

1 Ответ

1 голос
/ 23 июня 2019

Я исправил это благодаря комментарию Пайсанко, добавив эти две вещи:

1) По-видимому, необходимо также добавить каталоги библиотеки, которые я пропустил в свойствах KB01_Engine.«Библиотеки> Дополнительные каталоги библиотеки»

enter image description here

2) И затем я добавил каталоги включения для DirectX в свойствах KB01_Game. «C / C ++> Дополнительные каталоги включения": enter image description here

...