Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Code Blocks dll |
Автор: Petr1993 2.5.2013, 18:46 |
Я создал в Code Blocks'e динамическую библиотеку. У меня есть файлы *.dll, *.h, *.def. Что я должен сделать чтобы подключить эту библиотеку статически к какому-нибудь проекту? |
Автор: bsa 3.5.2013, 05:51 |
Petr1993, ничего. Динамическую библиотеку можно подключать только динамически. Для этого достаточно добавить dll в проект (я так понимаю, компилятор у тебя mingw). |
Автор: Petr1993 3.5.2013, 11:20 |
Да, компилятор mingw. Но разве нельзя подключить библиотеку с неявной компоновкой? |
Автор: NoviceF 3.5.2013, 11:55 |
если ты о статической компоновке, то: - нужно создать изначально статическую библиотеку (выбирается при создании проекта) - указать путь к ней в том проекте, в который ты хочешь её подключить - собрать проект При этом код библиотеки будет скомпонован вместе с твоим кодом в один бинарник. То есть в случае динамической линковки библиотека хранится в виде отдельного файла (so/dll), в случае статической - она включается в состав самого исполняемого файла. |
Автор: Petr1993 3.5.2013, 12:26 |
А что тогда означает явное и неявное подключение динамической библиотеки? |
Автор: Petr1993 3.5.2013, 12:56 |
Там написано что они отличаються методами доступа к функциям динамической библиотеки. |
Автор: NoviceF 3.5.2013, 18:51 | ||
Чуток нагуглил на тему. По мотивам http://citforum.ru/book/cook/dll0.shtml и другой найденной инфы: "Существует два способа загрузки DLL: с явной и неявной компоновкой. " При загрузке с неявной компоновкой, библиотека загружается до начала выполнения исполняемого файла. При явной компоновке, библиотека подгружается уже во время выполнения программы. Первый вариант, зачастую, можно реализовать настройками проекта, второй же придётся программировать непосредственно в приложении. Причём, насколько мне представляется, второй вариант довольно платформозависимый. В общем по началу намного понятнее, проще и универсальнее использовать только первый способ, это то, что описал выше bsa. |
Автор: Petr1993 4.5.2013, 11:44 |
Спасибо. |
Автор: bsa 7.5.2013, 10:39 | ||||
Загрузить библиотеку во время выполнения под Windows можно так:
При этом в библиотеке должна быть функция:
|