我正在使用C++開發Windows Embedded Compact 7的應用程序。我剛剛遇到的問題是,我在應用程序中創建的.ini設置文件和.txt日誌文件在安裝的卷(這是一個非易失性分區)上被重新啓動時刪除。我的應用程序創建的Windows CE/Embedded C++非易失性文件在重新啓動時被刪除
該應用程序正在努力打開.ini文件,編輯值,保存文件,並且下次啓動時它將與我更新的設置一起存在。直到最近一次重大軟件更新之後,我纔開始遇到問題。但是在更新期間沒有觸及處理打開和關閉文件的特定功能。
儘管它看起來像是與我的應用程序和我打開/編輯/保存/關閉文件的方式有關的,因爲如果我用Wordpad打開.ini文件並手動編輯值然後保存它,設置將被保存在重新啓動。我還對所有功能進行了適當的錯誤處理,並且沒有發生錯誤。
我已閱讀MSDN上可能需要「刷新」打開的緩衝區。可能我需要這樣做?我真的希望有人處理Windows嵌入式/ CE,並可能遇到類似問題的非易失性文件分區,它更像易失性內存。
感謝您的幫助!下面是我使用寫入日誌文件基本上是相同的代碼寫入到.ini文件中的代碼:
int writeLogFile(const char* szString)
{
FILE* pFile;
if((pFile = fopen("\\Mounted Volume\\logFile.txt", "a+")) == NULL)
debugMessage("Function: writeLogFile - Error! Could not open logFile.txt\n\r");
else
debugMessage("Function: writeLogFile - Notice. Opened logFile.txt\n\r");
if(fprintf(pFile, "%s\r",szString) < 0)
debugMessage("Function: writeLogFile - Error! There was a problem writing the alarm string to logFile.txt.\n\r");
if(fclose(pFile))
debugMessage("Function: writeLogFile - Error! Could not close logFile.txt\n\r");
else
debugMessage("Function: writeLogFile - Notice. Closed logFile.txt\n\r");
return 1;
}