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 に答える