Как сделать так, чтобы библиотека, построенная поверх SDL, не требовала заголовочных файлов SDL

Я не мог найти что-либо на Google или SO по этому поводу. Я не знаю, потому что это необычно или потому что я использую неправильные термины для поиска. Я читаю этот вопрос здесь, но он не ответил на мой вопрос.

Поэтому я пытаюсь создать библиотеку поверх SDL для C ++. Теперь я не могу понять, как сделать проекты, использующие мою библиотеку, полностью независимыми от файлов SDL, кроме dll,

Когда я делаю свою библиотеку, я связываюсь с SDL2.lib, а также SDL2main.lib, Я включаю все заголовочные файлы SDL в мои файлы библиотек. Когда я строю, он генерирует мой библиотечный файл; GGL.lib,

Но когда я хочу проверить свою библиотеку в другом проекте, я иметь включить все заголовочные файлы SDL, потому что в моем проекте Window.h, это включает SDL.h, Мне интересно, есть ли способ сделать заголовки моих библиотек независимыми от SDL, кроме dll,

3

Решение

Очевидно, что вам следует избегать включения заголовочных файлов SDL в заголовочные файлы вашей библиотеки. Включите их только в исходные файлы, где это возможно. Это устраняет избыточные зависимости и ускоряет процесс компиляции. Но вы хотите полной независимости, поэтому, если вы не можете удалить один #include директива, вы не смогли.

Если вам нужно объявить указатель типа SDL в вашем заголовке (как это обычно делается с SDL), опубликуйте его вперед. Однако этот тип останется неполным для пользователей вашей библиотеки. В случае, если ваша библиотека является объектно-ориентированной, есть Pimpl Idiom, который основан на том же принципе — он скрывает все.

4

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

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

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