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の仕組みです。