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

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

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

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

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

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

Добавлено через 12 минут
(P.S По этому вопросу лазил по многим форумам, везде максимум два три ответа и то невнятных. Неужели это так сложно - подключить библиотеку ? )
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2011, 19:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подключить dll к программе (C++):

Как подключить dll на C# к проекту (dll) на С++ - C++
Подскажите, пожалуйста, как подключить dll на C# к проекту (dll) на С++. В интернете много примеров, где показаны примеры по подключению...

Подключить dll - C++
Здравствуйте. Есть dll, в ней несколько функций, необходимо добавить еще одну, чтобы выводила окно с приветствием. И затем написать win...

Как подключить DLL - C++
Доброе время суток уважаемые участники Пытаюсь написать программу по работе с усб мостом, столкнулся с программной проблемой :)...

Подключить таблицу к программе - C++
задание сделать субд как подключить таблицу и записывать в нее значения? или же есть у кого исходник для работы с простейшей субд? ...

Подключить библ. bass.dll - C++
Дорогие друзья, прошу помочь! И заранее всех откликнувшихся благодарю! Есть у меня библиотека для работы со звуком: и bass.h,и bass.lib,и...

Подключить к проекту на C++ DLL написанный на C# - C++
Здравствуйте. Есть ли возможность подключить к проекту на C++, DLL написанный на C#? Мне нужно из этого DLL несколько функций...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.05.2011, 19:52 #2
Подключаешь хэдэр с экспортируемыми функциями. Линкуеш файл biblioteca.lib. Используешь.
LedZeppelin
7 / 7 / 0
Регистрация: 19.04.2011
Сообщений: 68
02.05.2011, 20:12  [ТС] #3
Цитата Сообщение от Deviaphan Посмотреть сообщение
Подключаешь хэдэр с экспортируемыми функциями. Линкуеш файл biblioteca.lib. Используешь.
У меня есть только файл *.dll. Т.е. мне надо выполнить т.н. явное подключение. Как это сделать ?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.05.2011, 20:17 #4
LoadLibrary
Потом ищешь функцию по имени, приводишь указатель на эту функцию к нужному типу и используешь.
LedZeppelin
7 / 7 / 0
Регистрация: 19.04.2011
Сообщений: 68
02.05.2011, 20:41  [ТС] #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 #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);
LedZeppelin
7 / 7 / 0
Регистрация: 19.04.2011
Сообщений: 68
03.05.2011, 05:18  [ТС] #7
DeadRipper,
Спасибо за подробные комментарии, именно в них я и нуждался. , а то если бы был сухой код я бы долго разбирался.
Теперь есть тропинка что бы идти дальше...

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

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

Добавлено через 5 часов 4 минуты
Все, разобрался
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2011, 05:18
Привет! Вот еще темы с ответами:

Как подключить dll к проекту? - C++
Ребят помогите пожалуйста, если сможете а то я уже 3 дня долбаюсь чет никак не могу разобраться с этими dll. вот я написал код dll-ки ...

Как в программе подключить справку? - C++
Есть файл *.chm, подключаю его через project -&gt; options и прописываю ShellExecute(Handle,L&quot;open&quot;,L&quot;Справка.chm&quot;,NULL,NULL,SW_RESTORE); НО...

Как подключить подпрограмму к программе? - C++
Как перейти из main в nemain? #include&lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; int main() { setlocale...

Как подключить пользовательскую DLL к приложению - C++
Добрый вечер! Я первый раз пишу dll. Вот ее текст: My.cpp: #include&lt;iostream&gt; #include &quot;My.h&quot; using namespace std; namespace...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.05.2011, 05:18
Ответ Создать тему
Опции темы

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