c++ - 如何从c中的dll调用源代码中的函数

标签 c++ dll

我已经用 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);
}

这就是 C 风格 plugin APIs喜欢NPAPI工作。

关于c++ - 如何从c中的dll调用源代码中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13866424/

相关文章:

c# - 从执行反向 P/Invoke 的函数返回时发生访问冲突

c# - SetCursorPos 不工作

c++ - 我应该把第三方库放在哪里?

c++ - 在 OSX 上更新 GCC

c++ - (c++) 堆上没有任何指针的对象会怎样?

c++ - 为什么我不能使用引用类型作为容器类型的值类型?

c - 如何从 Ruby 调用 Windows DLL 函数?

c++ - const对象的地址,被解释为低级const

c++ - DLL 导致 "Microsoft Excel has stopped working"但它在 Win32 控制台应用程序中工作正常

c# - 在 C# 中使用在 Delphi 7 中编译的 DLL