У меня есть внешний SDK, который содержит только файлы .dll, .lib и .h. Я пытаюсь использовать SDK. В dll ничего не читается, но в файлах .h есть комментарии к методам. Я не очень разбираюсь в С++. Я предполагаю, что мне нужно загрузить библиотеку, а затем прочитать из dll, используя методы, определенные в файлах .h. Правильный?
Мне нужно знать, как написать проект cpp, где я могу связать все эти файлы, прочитать dll и иметь возможность использовать методы, определенные в SDK. Есть ли тестовый проект с настройкой проекта, где я могу посмотреть, как это можно сделать? Любая помощь будет оценена по достоинству.
Ответ 1 · рейтинг 1 · paddy
Есть несколько способов добиться этого, в том числе метод быстрого доступа с использованием #pragma, который я не буду рекомендовать, если он приведет к развитию вредных привычек.
Точно так же вы можете использовать Таблицы свойств, но поначалу это может показаться немного сложным. Итак, я собираюсь дать вам стандартный средний подход...
В настройках вашего проекта (Alt-F7 или Проект > Свойства...) вам необходимо установить следующие параметры:
C/C++ > Общие > Дополнительные каталоги включения
Добавьте папку, в которой вы хотите искать, используя директиву #include. Не усложняя это личными предпочтениями и соображениями стиля, просто установите это в каталог, в котором находится заголовочный файл SDK.
Вы можете использовать абсолютные или относительные пути, переменные окружения. Что бы ни. Я предлагаю вам просто использовать абсолютный путь.
Компоновщик > Общие > Дополнительные каталоги библиотек
То же, что и выше, но здесь находится файл .lib.
Компоновщик > Ввод > Дополнительные зависимости
Это имя вашего файла lib.
Теперь, если вы #include скопируете заголовочный файл SDK в исходный код вашего проекта и скомпилируете его, мы надеемся, что он сработает. И шаг связывания также должен быть успешным.
Если нет, вам могут понадобиться дополнительные вещи, чтобы SDK работал хорошо (например, определения препроцессора, настройки компилятора или дополнительные зависимости).
Последнее, о чем вам нужно беспокоиться, это то, что запуск вашей программы может завершиться неудачно, потому что DLL не может быть найдена, если только она не находится в определенном месте, которое ищет Windows. Вместо того, чтобы возиться с путями поиска DLL и т. д., вы можете использовать событие после сборки, чтобы скопировать DLL в тот же каталог, где был собран ваш исполняемый файл.
Тем не менее, в свойствах проекта:
События сборки > Событие после сборки
Добавьте командную строку, например:
copy "\Path\To\MySDK\MySDK.dll" "$(OutDir)\"
Теперь вы должны быть готовы к работе, и вам больше не придется об этом думать!