Как включить библиотеки DirectX в мою статическую библиотеку (автономная библиотека)?

Я пишу свою собственную библиотеку, которая реализует интерфейс Engine3D (сделано мной).

«Пользователь» этой библиотеки должен включить ее (и заголовок для интерфейса Engine3D) в свой проект и запустить его без каких-либо дополнительных библиотек и т. Д.

К сожалению, когда я делаю статическую библиотеку из своего проекта, «пользователь» должен включать в себя и мою библиотеку, и библиотеки DirectX, устанавливать каталоги для DirectX и т. Д.

Есть ли способ сделать это простым (только одна библиотека — все, что ему нужно) и прозрачный для пользователя (никаких библиотек DirectX, каталогов в проекте, все внутри моя собственная библиотека)?

Я использую Visual C ++ 2012. Я не хочу создавать динамическую библиотеку, но статическую.

0

Решение

Огромное совпадение, потому что у меня была та же самая проблема час назад, и я нашел очень простое решение. Если вы используете директивы комментариев #pragma для включения ваших библиотек Directx, вы просто должны предоставить им полный путь ваших библиотек (вместо только имени), например:

#pragma comment ( lib, "c:/Softwares/Development/Lib/DirectX/Lib/x86/dxgi.lib" )
#pragma comment ( lib, "c:/Softwares/Development/Lib/DirectX/Lib/x86/d3d11.lib" )
#pragma comment ( lib, "c:/Softwares/Development/Lib/DirectX/Lib/x86/d3dx11.lib" )
#pragma comment ( lib, "c:/Softwares/Development/Lib/DirectX/Lib/x86/d3dx10.lib" )

Очевидно, что путь в моем примере связан с моей личной конфигурацией, и вы должны определить правильный путь к вашей директории DirectX libs на вашем компьютере. Затем вам просто нужно зайти в конфигурацию вашего проекта -> C / C ++ -> General -> Additionnal Include Каталоги и указать путь к вашим DirectX файлам включения.

Это оно! Теперь вы можете скомпилировать интерфейс DirectX и связать его с другим проектом без необходимости дополнительной настройки после этого.

Я надеюсь, что это поможет вам, и извините за мой плохой английский. 🙂

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector