Я использую Visual Studio 2017, и мне необходимо использовать DirectX9.0 для школьного проекта.
У меня есть решение с 3 проектами. Одна - это статическая библиотека (.lib), другая - приложение (.exe), а другая - проект модульного тестирования:
KB01_Game.exe импортирует KB01_Engine.lib примерно так:
Свойства KB01_Game
KB01_Engine.lib содержит ссылки на d3dx9 примерно так (я также попытался изменить порядок этих ссылок DXSDK, но безуспешно):
KB01_Двигатель свойства
Файлы в 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, это дает мне эту ошибку, которая также включена в заголовок, которую я изо всех сил пытался исправить ...
Внешние зависимости / заголовочные файлы для directx появляются в KB01_Engine, как и ожидалось. Когда я щелкаю правой кнопкой мыши на d3dx9.h и выбираю опцию «Открыть документ« d3dx9.h »», он фактически открывает правильный документ. Нет признаков того, что он не может найти файл. Я твердо предполагаю, что эта ошибка сборки происходит из-за того, что я использую движок KB01 как статическую библиотеку, а не как обычное приложение.
Если вы хотите просмотреть код, он доступен здесь: https://github.com/bdeboer95/KB01-Revamped