0

我已经在 C++ 中创建了一个 DLL,并且已经成功地能够在另一个应用程序中使用它。我想要的是在我的应用程序代码中使用一个函数——而不是 DLL——并且能够在 DLL 中使用该函数。

这可能吗?谢谢。

4

1 回答 1

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);
}

这就是像NPAPI这样的 C 风格插件 API的工作方式。

于 2012-12-13T18:58:26.247 回答