2013-11-21 18 views
1

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

} 

回答

0

你能尝试广告fflush叫你关闭该文件之前。 这应该强制实际写入。如果不明确强制文件系统可能会缓存写入。

相关问题