我正在为尝试调试的应用程序禁用LFH。我能够重建和重新部署应用程序,但是我无法附加调试器或设置任何gflag。

有这些约束来禁用LFH的好方法是什么?是否可以在可执行文件本身上修改属性?或一些我可以添加到程序中的启动代码?

最佳答案

在Vista和Win7上,我认为您可以使用Application Compatibility Toolkit在每个可执行的基础上禁用低碎片堆。

在XP上,the documentation建议you don't get a LFH by default。因此,可能是您的C++运行时库(您尚未命名)将其打开。启用后将无法禁用它。因此,请查看特定运行时库的文档,以查看是否可以告诉它不要启用LFH,或者是否可以链接到其他版本的运行时库而不启用它。

另请参阅this thread on the Microsoft forums

10-04 14:40