我正在使用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;
}