我使用的工業平板電腦,通過串口接收資料,將資料處理完畢之后保存到SD卡中的一個TXT檔案中,在軟體運行程序中如果人為的將SD卡拔除,軟體會死機,現想獲得一個存盤的方案,非常感謝
uj5u.com熱心網友回復:
寫時候介面的回傳有進行判斷嗎?可以根據寫資料的回傳介面判斷,如果寫失敗多少次,就回傳錯誤。不過不了解你具體用的什么介面,不敢斷言。
uj5u.com熱心網友回復:

死機是你的例外處理不到位。
考慮各種可能出現的例外。
uj5u.com熱心網友回復:
你別把寫資料的程序放在主執行緒里面,每次寫之前做好例外檢查再寫,寫的程序中做個定時器做超時處理uj5u.com熱心網友回復:
我是用MFC的CFile類進行寫的,寫資料還能判斷寫入成功或者失敗嗎?那個定時器的超時處理時怎么回事,能詳細說一下嘛?拜托了uj5u.com熱心網友回復:
我也有用過例外判斷類的東西,但是結果是一樣的,現在不知道怎么辦,會不會是程式判斷SD卡的狀態之后,檔案也打開了,但是寫的程序中SD卡被拔出來了,結果就寫不進去了?有沒有這種可能?uj5u.com熱心網友回復:
CFile 讀寫使用 try catch 捕捉 CFileExceptionuj5u.com熱心網友回復:
開一個專門寫的執行緒,加上例外判斷uj5u.com熱心網友回復:
不要企圖優雅的結束(因為這是不可能辦到的)而要在爛的不能再爛的攤子上也能重整河山!
uj5u.com熱心網友回復:
使用CFile 加上 try catch 捕捉 CFileException,試過了,行不通uj5u.com熱心網友回復:
可以先寫到其他地方,非SD卡,然后每次寫完,再做一次拷貝檔案,在拷貝前判斷SD卡的路徑是否是有效的,如果無效,做無效處理,有效的話,直接拷貝一下。uj5u.com熱心網友回復:
做一個監控USB介面的監控執行緒 當有usb斷開時檢測是不是你正在用的設備,修改標志位 在寫資料的代碼那判斷,然后提示退出。uj5u.com熱心網友回復:
try{}cache{}
逮不到例外么
uj5u.com熱心網友回復:
系統設備發生改變時,會發出WM_DEVICECHANGE訊息,如果設備被移除,該訊息引數為DBT_DEVICEREMOVEPENDING,再此時刻,可以進行你的“無奈的”處理uj5u.com熱心網友回復:
工控類資料,最好多份保存。本地留1份,網路、外部設備捕獲例外,VS、OFFICE死機后不也有恢復嗎?怎么做的。。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/70010.html
標籤:界面
上一篇:用winapi 寫了個桌面 畫框寫文字的程式,除了問題。不知道這里有沒有人能指導一下!
下一篇:(基于opencv的車牌檢測)vc++專案配置中選擇無公共語言可以運行 成功,選擇有公共語言..clr運行時出現例外說是觸發一個斷點,堆已損壞!求大神指導下。。
