C++では、DLLがそれをロードしたアプリケーションのシンボルにアクセスすることは可能ですか? 私はプラグイン(dll)をロードするアプリケーションを持っており、これらのプラグインはアプリケーションのいくつかのAPIにアクセスする必要があります。DLLはそのアプリケーションのシンボルにアクセスする必要があります
このAPIを共有する新しいDLLを作成せずにこれを行うことは可能ですか?
この状況では、関数ポインタの構造体は適切ですか?
例:boolホストアプリケーションで定義されたLog(char *)関数と、いくつかのイベントを記録する必要のあるプラグイン。
+1ですが、C++の上にプラグインアーキテクチャを構築するのは良い選択ですか?プラグインは、同じC++コンパイラでビルドする必要があります(バージョンではなく、少なくとも製造元でない場合)。 –
あなたがそうすることができれば、いつも "C"をextern "C"にすることができます。もちろん、これはCスタイルのインターフェイスに限定されますが、それはトレードオフです。私はCOMを提案しますが、私はまっすぐな顔でそうすることはできません:) –