容错堆在Windows 10下的vs2015

问题描述:

创建在Vs2015一个ATL COM DLL的VB6消费者会因为严重的“容错堆垫片”被应用到VB6,这我从vs2015 debug命令运行。容错堆在Windows 10下的vs2015

我发现很多关于在Windows 7中禁用FTH的帖子,实际上我已经应用了它们,包括删除\ Windows \ AppPatch中的DLL,以及在注册表中解除FTH并运行被引用的rundll脚本。

不过,这该死的东西是使我不可能调试的dll,因为FTH使得它像运行在调试模式下VB6狗。

我甚至增加在注册表中的排除列表“VB6.EXE”和“full_path_to_vb6.exe” - 无济于事。

我绝望了,需要今天完成一些工作,我已经将vb6.exe重命名为myvb7.exe(!),这样就可以摆脱VS调试器中的FTH警报。但为什么我不能禁用FTH vb6.exe?

事实上,为什么它甚至可以在所有启用时,调试器附加?今天让我生气了。

有人吗?

+0

https://*.com/questions/5020418/how-do-i-turn-off-the-fault-tolerant-heap –

+0

它可能与vb6.exe有一个在内置的条目中的条目有关,在兼容性数据库。在Windows 7上,此条目看起来似乎不会强制容错堆,但它可能在Windows 10上不同 - 或者应用的其他垫片之一可能会间接影响使用FTH的决定。 (您可以使用Microsoft应用程序兼容性工具包来检查兼容性数据库。) –

+0

@Jonathan:没有任何关于post的链接对vb6在windows 10上有任何不同,正如我在我的问题 – user5916352

有没有太多的帮助在这个即将到来。为了将来的参考,如果应用程序(在本例中为VB6)设置为以兼容模式运行(无论是从右键单击启动它的快捷方式,还是从目标exe本身设置的属性),那么您就不会执行任何操作将释放垫片!

解决方案:不要的Windows 10下运行在兼容模式下VB6!

+0

这听起来不像是一个解决方案。使用启动XP的VM。有人应该让这个客户有一个他不能拒绝的提议:) –