Когда к нам прикреплены exe
или dll
и static library
, мы можем использовать ключевое слово extern
для доступа к статическим библиотекам variables
и / или functions
из exe
или dll
.Чтобы упростить ситуацию, давайте предположим, что к нему прикреплены exe
и lib
.
Я пытаюсь вызвать функцию exe
из lib
.
Исполняемый код
void doSomething() {
// do something here
}
Статический связанный библиотечный код
void onSomeEvent() {
doSomething(); // call doSomething() here
}
И наоборот, легко, но мне интересно, можно ли это сделать так, как ключевое слово extern
.Или какой самый лучший метод?
Что мне приходит в голову, это передать function pointer
(например, void*
) одному из functions
/ methods
в lib
(возможно,конструктор класса).Я думаю, что это должно работать, но я не хочу слишком трогать код библиотеки, поскольку библиотека не моя и может быть заменена более новыми версиями.Я могу добавить / удалить несколько строк кода, но я хочу предотвратить изменение интерфейсов функций.
Что такое лучше способ?