Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как подключить библиотеку 
:(
    Опции темы
_par
Дата 27.3.2007, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 25.1.2007

Репутация: нет
Всего: нет



есть две dll библиотеки как их подключить с помощью #pragma comment(); или LoadLibrary();
приведите пример пожалуйста  smile 
PM MAIL   Вверх
Tectoder
Дата 27.3.2007, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 202
Регистрация: 13.3.2007

Репутация: нет
Всего: 8



Код

HANDLE hModule=LoadLibrary("mylib.dll");
void * SomeFunc=GetProcAddress(hModule,"NameOfTheFunction");
//если dll уже больше не нужна
FreeLibrary(hModule);
//теперь использовать функции из dll не стоит

PM   Вверх
_par
Дата 27.3.2007, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 25.1.2007

Репутация: нет
Всего: нет



Код

void * SomeFunc=GetProcAddress(hModule,"NameOfTheFunction");


А зачем это ? типа обращаться к функциям SomeFunc::... или как ?
PM MAIL   Вверх
Tectoder
Дата 27.3.2007, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 202
Регистрация: 13.3.2007

Репутация: нет
Всего: 8



Типа после этого в SomeFunc будет адрес функции NameOfTheFunction
PM   Вверх
_par
Дата 27.3.2007, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 25.1.2007

Репутация: нет
Всего: нет



Понял спасибо , а какие ещё есть способы ,чтобы не нужно было каждую функцию объевлять ?
PM MAIL   Вверх
Tectoder
Дата 27.3.2007, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 202
Регистрация: 13.3.2007

Репутация: нет
Всего: 8



посмотри в настройках линкера есть список dll, которые нужно линковать статически.
Можешь добваить туда свою dll, тогда достаточно указать просто правильный прототип функции(или как правило просто юзать h-файл от библиотеки, если таковой имеется).
Но в этом случае, если dll вдруг не окажеться в папке с программой, то твоя программа не загрузится, совсем.
PM   Вверх
Greeen
Дата 28.3.2007, 07:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



Tectoder, не dll, а lib статически подключаются.


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Earnest
Дата 28.3.2007, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



#pragma comment(lib, "MyLib.lib")
Вставляешь в любое место кода. Лучше, конечно, там, где это логически обусловлено.
При этом MyLib.lib должна быть в пределах досягаемости во время компиляции, а, соответственно, MyLib.dll - в момент загрузки. 



--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0630 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.