上次在QT中編寫plain C++程序的時(shí)候喊式,由于一個(gè)指針的問題,導(dǎo)致程序報(bào)錯(cuò)萧朝,在修改好程序之后垃帅,無論怎么重新編譯,包括刪除程序重寫剪勿,都發(fā)生了問題,其中提示的問題是:
FTH: (6140): ***Fault tolerant heap shim applied to current process. This is usually due toprevious crashes. ***
由于本人英語不怎么樣方庭,便自行百度了這段話:
容錯(cuò)堆墊片應(yīng)用到當(dāng)前的過程厕吉。這通常是由于以前的崩潰
這是百度給出的翻譯,大概內(nèi)容可以了解了械念,就是因?yàn)橹暗哪莻€(gè)指針的問題头朱,導(dǎo)致現(xiàn)在的程序崩潰,當(dāng)時(shí)我心里就納悶了龄减,我都刪除文件重新寫了一遍项钮,為什么還會存在這個(gè)問題,后來我終于在萬能的網(wǎng)友的手上找到了這一解決方案:
(1)打開注冊表希停,設(shè)置HKLM\Software\Microsoft\FTH\Enabled 為0
(2)打開CMD(以管理員的方式)烁巫,運(yùn)行Rundll32.exe fthsvc.dll,FthSysprepSpecialize
(3)再次運(yùn)行程序
注:出現(xiàn)這個(gè)問題之后,我們會發(fā)現(xiàn)在注冊表中的HKLM\Software\Microsoft\FTH\Enabled值變?yōu)榱?宠能,可能就是這個(gè)問題導(dǎo)致了接下來的程序崩潰亚隙。
其實(shí)這樣的問題,微軟早就有個(gè)說明:
<a href="https://msdn.microsoft.com/en-us/library/dd744764"target="_blank">鏈接地址</a>
看來以后使用指針需要更加的小心违崇,沒想到一個(gè)控制臺程序的崩潰阿弃,居然會改變注冊表中的內(nèi)容诊霹。