上次在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>
看來以后使用指針需要更加的小心,沒想到一個控制臺程序的崩潰,居然會改變注冊表中的內容。