【发布时间】:2011-06-21 20:40:53
【问题描述】:
我正在构建一个游戏引擎(在 c++ 中),它被分成多个项目(在 windows 和 linux 中编译为单独的 dll 和 libs 和共享对象)结构如下:
Main.exe
Engine.dll
Graphics Engine.dll Physics Engine.dll Sound Engine.dll ...dll
Main.exe 初始化一个新引擎,然后引擎创建图形、物理和声音引擎。这一切都很好,但是我现在希望图形引擎运行声音引擎中存在的函数,而不是直接通过 Engine.dll 中的函数运行。
但是有一个问题。主要包括引擎,引擎包括图形、物理和声音。如果我现在告诉图形、物理和声音包括引擎,并将引擎对象的引用传递给每个相应的“子引擎”,那么循环依赖就会出现问题......
如何让图形、物理和声音引擎与主引擎通信(因为目前它只是主引擎调用子引擎所有功能的单向关系)?
【问题讨论】:
标签: c++ dll object libraries circular-dependency