当我们有一个 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
之一(可能传递给类构造函数)。我认为这应该可行,但我不想过多地接触库的代码,因为库不是我的,可以用更新的版本替换。我可以向其中添加/删除几行代码,但我想防止更改函数接口(interface)。更好的 方式是什么?
最佳答案
当然,您只需要在库中声明函数即可。
void onSomeEvent() {
void doSomething(); // declares the function
doSomething(); // call doSomething() here
}
关于c++ - 尝试以相反的顺序使用 extern,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8213491/