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

Начальное изучение явного подключения библиотек и использования их функций - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проблемы с инициализацией данных http://www.cyberforum.ru/cpp-beginners/thread609638.html
Сразу оговорюсь, что на форуме пишу впервые и перед тем, как писать о проблеме ознакомился с похожими темами , но именно по моей проблеме ничего вразумительного не нашёл. Поэтому, уважаемые...
C++ Ошибка в функции (strncpy) Надо прочитать файл содержащий что-то подобное: 1. Nomer reisa: 1 ves bagazha: 1.50 (kg) kolichestvo veshei: 5 2. Nomer reisa: 1 ves bagazha: 2.60 (kg) kolichestvo veshei: 55 3. Nomer reisa: 1 ves... http://www.cyberforum.ru/cpp-beginners/thread609632.html
Одномерный массив В из номеров положительных элементов массива А C++
Помогите сформировать одномерный массив В из номеров положительных элементов массива А.
C++ Найти обратную матрицу методом Гауса
Всем привет. Задание следующее,есть матрица typedef GLdouble GLTDoubleMatrix; GLTDoubleMatrix tempm = {-2, 1, 3, 2, 1, 2, -1, 1, 1, -2, -1, 2, 2, 2, ...
C++ Не выполняет присвоение http://www.cyberforum.ru/cpp-beginners/thread609596.html
вопрос в комментариях. game::game(int size_team_, int begin_counter): size_team(size_team_) { srand(time(NULL)); Tunit tempunit; for(int i=0;i< this->size_team ;i++) {...
C++ Найти ошибку(сумма элементов массива) Здравствуйте. Необходимо найти ошибку в нахождении суммы до элемента, значение которого вводится с клавиатуры, например 1 2 3 4 5 6 7 8 9 Ввожу 6 и считает 1+2+3+4+5+6 Код: #include... подробнее

Показать сообщение отдельно
Nightmare0
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 4

Начальное изучение явного подключения библиотек и использования их функций - C++

19.06.2012, 21:29. Просмотров 818. Ответов 3
Метки (Все метки)

Вот код приложения, которое подключает в себя библиотеку plugin1.dll
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
#include <Windows.h>
#include <iostream>
using namespace std;
 
typedef void (__stdcall *MYPROC)(void);
 
void main(void) {
    cout << "Load Dll..." << endl;
 
    HMODULE hLib = LoadLibrary(L"plugin1.dll"); 
    if (hLib)
    {
        cout << "Library load." << endl;
 
        MYPROC MyFunction = (MYPROC)GetProcAddress(hLib, "MyFunction"); 
        if (MyFunction) 
        {
            cout << "Function load." << endl;
 
            MyFunction(); 
        }
    }
 
    system("pause");
 
}
Код библиотеки
C++
1
2
3
4
5
6
7
8
#include <Windows.h>
#include <iostream>
 
 
extern "C" __declspec(dllexport) void MyFunction(void)
{
    std::cout << "Hi from DLL!" << std::endl;
}
Все работает прекрасно, вопрос будет в расширении функционала.

В строке
C++
1
MYPROC MyFunction = (MYPROC)GetProcAddress(hLib, "MyFunction");
мы получаем функцию "MyFunction" из явно подключаемой библиотеки.
Проблема в том что я не знаю какие функции будут в модуле, но знаю список функций в виде текста, следовательно я не могу использовать
C++
1
MyFunction();
в основной программе. Можно ли как-то эту строку изменять в зависимости от поступаемого аргумента в строке
C++
1
MYPROC MyFunction = (MYPROC)GetProcAddress(hLib, "MyFunction");
"MyFunction" ?

Буду рад любой информации касательно темы!

p.s. Допустим в модуле будет функция инициализации которая будет всегда исполняться при подключении, каким методом можно из библиотеки к примеру передать объект/массив, в общем набор внутренних функций, в основную программу? Массив ссылок на функции и т.д.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru