@Karcendor

Как реализовать взаимодействие нескольких библиотек между собой на c++?

Добрый вечер!
Имеются ТРИ библиотеки .
Первая библиотека обрабатывает две другие библиотеки.
Первая библиотека - MTH_LIB.
MTH_LIB.h
#ifndef MTHLIB_H
#define MTHLIB_H
int plus(int a, int b);
int dminus(int a, int b);

#endif // !MATHLIB_H

MTH_LIB.cpp
#include "MTH_LIB.h"

int plus(int a, int b)
{
 return a+b;
}
int dminus(nt a, int b)
{
 return a-b;
}

Вторая библиотека

ONE_LIB.h
#ifndef ONELIB_H
#define ONELIB_H
int gone();
int hone();

#endif

ONE_LIB.cpp
#include "ONE_LIB.h"

int gone()
{
     return 1;
}

int hone()
{
     return 1;
}


Третья библиотека.

TWO_LIB.h
#ifndef TWOLIB_H
#define TWOLIB_H
int gone();
int hone();

#endif

TWO_LIB.cpp
#include "ONE_LIB.h"

int gone()
{
     return 3;
}

int hone()
{
     return 3;
}


Все библиотеки динамические ,собранные с помощью cmake.
Первая библиотека подключена постоянно. Возможно ли во время исполнения программы выбирать между второй и третей библиотекой и как можно это сделать? Спасибо
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 2
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Надо системное апи использовать. Вы, похоже, под виндой, так что LoadLibraryEx, GetModuleHandleEx, GetProcessAddress вам помогут. Первой вы открываете библиотеку. Второй можно потом пользоваться чтобы получить доступ к уже открытой библиотеке, если вы HANDLE не сохранили куда-то. Третья позволит вам получить указатель на функцию из библиотеки.

Можно гуглить "имя функции example" и тогда вы найдете в интеренете готовый код, работающий с этими функциями.
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Это преподаватель тебе такие задачи подкидывает?

Загружай все три библиотеки и построй над ними полиморфизм через языковые возможности С++.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы