我用C ++创建了一个DLL,并且已成功地在另一个应用程序中使用它。我想要的是在我的应用程序代码中使用一个函数 - 而不是DLL - 并且能够在DLL中使用该函数。
这可能吗?感谢。
答案 0 :(得分:4)
当然 - 如果你可以调用你的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);
}
这就是plugin APIs的C风格NPAPI的工作方式。