オペレーティング システムが実行可能ファイルとして読み込んで実行できる単一のバイナリを作成できますが、動的にリンクすることもできますか?
これは、クライアントとサーバーが同じ実行可能ファイルに存在する (場合によってはコードを共有する) アプリケーション間でリソースを共有する場合に役立ちます。
WindowsだけでなくLinuxにも興味があります
オペレーティング システムが実行可能ファイルとして読み込んで実行できる単一のバイナリを作成できますが、動的にリンクすることもできますか?
これは、クライアントとサーバーが同じ実行可能ファイルに存在する (場合によってはコードを共有する) アプリケーション間でリソースを共有する場合に役立ちます。
WindowsだけでなくLinuxにも興味があります
少なくとも Windows では、これはサポートされていません。でモジュールをロードするLoadLibrary
と、実行可能ファイルをそのモジュールに渡してLoadLibrary
、その後そのモジュールからコードを実行することはできません。ドキュメントには次のように記載されています。
LoadLibrary を使用して、他の実行可能モジュールをロードすることもできます。たとえば、関数は .exe ファイルを指定して、FindResource または LoadResource で使用できるハンドルを取得できます。ただし、LoadLibrary を使用して .exe ファイルを実行しないでください。代わりに、CreateProcess 関数を使用してください。
必要なものを達成する最も簡単な方法は次のとおりです。
main
おそらくエクスポートします。WinMain
ここを見てください。少なくともウィンドウの下であなたの質問に答えることができます。 http://sandsprite.com/CodeStuff/Using_an_exe_as_a_dll.html
exe を使用して、lib 内のシンボル リンクをエクスポートし、別のプロジェクト (たとえば DLL プロジェクト) をその lib にリンクできます。次に、DLL を exe 自体から動的にロードすると、すべてが機能します。他の方法で使用できるかどうかはわかりませんLoadLibrary
ラズヴァン。