上次在QT中编写plain C++程序的时候,由于一个指针的问题,导致程序报错,在修改好程序之后,无论怎么重新编译,包括删除程序重写,都发生了问题,其中提示的问题是:
FTH: (6140): ***Fault tolerant heap shim applied to current process. This is usually due toprevious crashes. ***
由于本人英语不怎么样,便自行百度了这段话:
容错堆垫片应用到当前的过程。这通常是由于以前的崩溃
这是百度给出的翻译,大概内容可以了解了,就是因为之前的那个指针的问题,导致现在的程序崩溃,当时我心里就纳闷了,我都删除文件重新写了一遍,为什么还会存在这个问题,后来我终于在万能的网友的手上找到了这一解决方案:
(1)打开注册表,设置HKLM\Software\Microsoft\FTH\Enabled 为0
(2)打开CMD(以管理员的方式),运行Rundll32.exe fthsvc.dll,FthSysprepSpecialize
(3)再次运行程序
注:出现这个问题之后,我们会发现在注册表中的HKLM\Software\Microsoft\FTH\Enabled值变为了1,可能就是这个问题导致了接下来的程序崩溃。
其实这样的问题,微软早就有个说明:
<a href=”https://msdn.microsoft.com/en-us/library/dd744764“target=”_blank”>链接地址</a>
看来以后使用指针需要更加的小心,没想到一个控制台程序的崩溃,居然会改变注册表中的内容。