Linux で dlopen を使用して *.so プラグインをロードしています。プラグイン機能を mingw で Windows に移植したいと考えています。Windows のネイティブ DLL 機能に dlopen API を追加する dlfcn-win32 ライブラリがありますが、これは DLL がメインの実行可能ファイルである IIUC 内のシンボルを参照できないという Windows のネイティブの制限を回避するものではありません。
1 つの代替手段として、オブジェクトがロードされるときに共有オブジェクト内のリンクされた未解決のシンボルによって UNIX の機能を模倣するEDLL ライブラリを使用することが考えられます。おそらく、EDLL ライブラリを使用する dlfcn ラッパーを実装できますか?
もう 1 つの方法は、実行可能ファイルのインポート ライブラリを生成し、 dlfcn-win32 を使用することです。
これらの代替案のどれがより簡単である可能性がありますか? すべての「プラグイン」を実行可能ファイルでコンパイルすることを期待していることに注意してください。
-ベンリ