私は、複数のプロジェクトに分割された(C++で)ゲームエンジンを構築しています(Windows上のdllとlibsを分離してコンパイルしています。複数のDLLがお互いを "main" dllで機能しています
Main.exe
Engine.dll
Graphics Engine.dll Physics Engine.dll Sound Engine.dll ...dll
Main.exeは新しいエンジンを初期化し、エンジンはグラフィックス、物理エンジン、サウンドエンジンを作成します。これはすべてうまく動作しますが、私は現在、サウンドエンジンに存在する機能を実行するが、直接代わりにEngine.dllの機能を介して機能するように、例えばグラフィックスエンジンを必要としています。
ただし、問題があります。メインにはエンジン、エンジンにはグラフィック、物理、サウンドが含まれます。 Graphics、Physics、Soundにエンジンを組み込み、それぞれの "サブエンジン"にエンジンオブジェクトのリファレンスを渡すと、循環依存性に問題があります。
Graphics、Physics (メインエンジンがサブエンジンのすべての機能を呼び出す一方向の関係になっています)。