C++ コードのライブラリを「ホットプラグ」しようとしています。この手法を Linux/Mac/Windows 間のクロス プラットフォームで機能させることに興味があります。基本的に、すべての呼び出し可能なインターフェイスを定義するメイン プログラム #include "StateMachine.h" が必要です。次に、実行時と実行中に StateMachineLibrary.a をロードおよびアンロードして、アプリケーションで異なるステート マシンを使用するようにします。
私が考えているのは、このコンパイルされたコードを自分のmallocされたメモリにロードし、そのメモリに関数ポインタを作成するラッパーを書くようなことでしょうか?
動機は、私のプロジェクトのステート マシンの部分が頻繁に変更され、再コンパイルが必要になることです。また、メイン アプリがさまざまなステート マシンをロードして実行し続けることができるようにします。いくつかの懸念があるため、Luaスクリプトなどの代わりに「ホットプラグ可能な」ライブラリを使用したいと考えているため、代替手段としてすでに検討されていることを考慮してください。