Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
LedZeppelin
 Аватар для LedZeppelin
7 / 7 / 0
Регистрация: 19.04.2011
Сообщений: 68
#1

Подключить dll к программе - C++

02.05.2011, 19:28. Просмотров 1555. Ответов 6
Метки нет (Все метки)

Здравствуйте. Нужна помощь новичку. У меня есть файл, к примеру biblioteka.dll. Каким оброазом можно подключить эту библиотеку к моей программе, что бы я мог использовать её функции и переменные.

Добавлено через 12 минут
(P.S По этому вопросу лазил по многим форумам, везде максимум два три ответа и то невнятных. Неужели это так сложно - подключить библиотеку ? )
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1285 / 1219 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.05.2011, 19:52     Подключить dll к программе #2
Подключаешь хэдэр с экспортируемыми функциями. Линкуеш файл biblioteca.lib. Используешь.
LedZeppelin
 Аватар для LedZeppelin
7 / 7 / 0
Регистрация: 19.04.2011
Сообщений: 68
02.05.2011, 20:12  [ТС]     Подключить dll к программе #3
Цитата Сообщение от Deviaphan Посмотреть сообщение
Подключаешь хэдэр с экспортируемыми функциями. Линкуеш файл biblioteca.lib. Используешь.
У меня есть только файл *.dll. Т.е. мне надо выполнить т.н. явное подключение. Как это сделать ?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1285 / 1219 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.05.2011, 20:17     Подключить dll к программе #4
LoadLibrary
Потом ищешь функцию по имени, приводишь указатель на эту функцию к нужному типу и используешь.
LedZeppelin
 Аватар для LedZeppelin
7 / 7 / 0
Регистрация: 19.04.2011
Сообщений: 68
02.05.2011, 20:41  [ТС]     Подключить dll к программе #5
Вот на чем я остановился.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include "windows.h"
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    char namelib[20]="SSQ.dll";
    
    HINSTANCE hModule=NULL;
    hModule=LoadLibrary(namelib);
    if (hModule!=NULL)
    {
     cout<<"дескриптор "<<namelib<<" получен\n";
    } 
     else 
          {
               cout<<"дескриптор "<<namelib<<" не получен\n";
               cin.get();
               return 0;
          }
                   
    cin.get();
    return 0;
}
Тут я получаю дескриптор библиотеки возвращаемы функцией LoadLibrary(). Что делать дальше не знаю.
DeadRipper
64 / 70 / 3
Регистрация: 25.06.2009
Сообщений: 244
02.05.2011, 22:54     Подключить dll к программе #6
ну вот библиотека подключена теперь надо найти указатель на функцию по ее имени

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
typedef (...)functype (...,...,..) // создаем прототип функции
//допустим в дллке была такая функция - void Func1 (int,int,char);
//тогда 
 
typedef void (*functype) (int,int,char)  // functype и будет ее прототипом
 
//теперь ищем адрес функции в дллке
 
functype Func1 = GetProcAddress(hModule,"Func1 -- ее название в dllке");
 
//теперь вызываем ее как обычную функцию
 
Func1(0,0,0);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2011, 05:18     Подключить dll к программе
Еще ссылки по теме:

C++ Как в программе подключить справку?
C++ Как подключить подпрограмму к программе?
Как подключить DLL C++
Подключить к проекту на C++ DLL написанный на C# C++
C++ Как подключить графику к написанной программе?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
LedZeppelin
 Аватар для LedZeppelin
7 / 7 / 0
Регистрация: 19.04.2011
Сообщений: 68
03.05.2011, 05:18  [ТС]     Подключить dll к программе #7
DeadRipper,
Спасибо за подробные комментарии, именно в них я и нуждался. , а то если бы был сухой код я бы долго разбирался.
Теперь есть тропинка что бы идти дальше...

Добавлено через 49 минут
Цитата Сообщение от DeadRipper Посмотреть сообщение
ну вот библиотека подключена теперь надо найти указатель на функцию по ее имени
В библиотеке которую я пытаюсь подключить есть функция:

C++
1
BOOL WINAPI SSQ_SetGameServer(  char* address);
Как мне ее вызвать ?

Добавлено через 5 часов 4 минуты
Все, разобрался
Yandex
Объявления
03.05.2011, 05:18     Подключить dll к программе
Ответ Создать тему
Опции темы

Текущее время: 12:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru