我已经在 C++ 中创建了一个 DLL,并且已经成功地能够在另一个应用程序中使用它。我想要的是在我的应用程序代码中使用一个函数——而不是 DLL——并且能够在 DLL 中使用该函数。
这可能吗?谢谢。
当然 - 如果您可以调用 DLL 中的函数,您可以例如从宿主应用程序(或同一进程中的另一个 DLL)传递函数指针,然后调用它们:
// DLL side:
typedef void (*CallbackFunc)();
APISTUFF void dllFunction(CallbackFunc f) {
f();
}
// hosting app side:
void hostFunction() {
// ...
}
void doPluginStuff() {
// ... load DLL, resolve dllFunction, etc.
dllFunction(&hostFunction);
}
这就是像NPAPI这样的 C 风格插件 API的工作方式。