【发布时间】:2021-07-31 23:40:19
【问题描述】:
我正在尝试通过静态库将 Stockfish 实施到我自己的项目中。但是我遇到了一个问题。 Stockfish 在“Stockfish”的命名空间中使用了一些全局变量,并且在我的项目中的某个时刻,我想销毁我在 Stockfish 中使用的所有内容并稍后重新初始化。
例如,Stockfish 将选项存储在 Stockfish::Options 的全局对象中。当我第一次初始化 Stockfish 时,一切都很好。但是我想要实现它结束 Stockfish 并从变量中删除它的所有成员而不关闭我的项目并在我想要的时候重新初始化它。
据我了解,Stockfish 不是为此而设计的。设计为“启动引擎,关闭主程序时结束引擎”。
所以,我相信我必须经历每一次初始化并找到正确的方法来结束它们。在此之前,我想问三个问题:
- 我可以告诉我的程序清理“这个特殊的 .lib”使用的内存吗?
- 我可以编写一个代码来删除由命名空间初始化的整个内存吗?例如,由于 Stockfish 是整个代码的命名空间,我可以执行“删除 Stockfish”之类的操作吗? ?
- 还有其他我想不到的方法来实现我想做的事情吗?
【问题讨论】:
标签: c++ memory-management stockfish