2013-04-12 50 views
0

cpp沒有IsolatedStorageSettings或IsolatedStorageFile。 所以我只是使用「FILE」和「fopen」來存儲遊戲數據。如何使用cpp在WP8上升級應用程序時防止丟失保存數據

但是當我使用「Xapdeploy」重新安裝或升級應用程序或使用vs. 進行調試時,保存數據將丟失。 所以我怎麼能把它標記爲IsolatedStorageFile。 我的意思是當我升級應用程序時,文件不會被系統刪除。

+0

什麼是您打開/寫入文件的路徑?有機會,你已經寫信給iso商店(用別名) –

+0

我在根目錄下打開Game.sav – user2275219

回答

0

您需要將數據保存在LocalFolder(隔離存儲的新名稱)中以使其保留。

有些Windows運行時API可以在C++/CX中使用,這可能是最好的選擇(特別是查找StorageFolder和StorageFile),特別是如果您希望使用Windows應用商店應用保持便攜性時。

但是,如果您要使用fopen,則主要問題是需要使用char[]而不是wchar_t[]文件名,該文件名由平臺的其餘部分使用。爲了解決這個問題,你將需要...

void SaveToFile() 
{ 
    // get local folder (= isolated storage) 
    auto local = Windows::Storage::ApplicationData::Current->LocalFolder; 
    auto localFileNamePlatformString = local->Path + "\\game.sav"; 

    FILE* pFile; 
    auto f = _wfopen_s(&pFile, localFileNamePlatformString->Data(), L"w"); 
    auto res1 = fprintf(pFile, "123456789"); 
    auto res2 = fclose(pFile); 
} 
+0

非常感謝,它非常有用。 和_wfopen也在wp8中啓用,所以我們不需要將wchar_t×轉換爲char *。 並且有一個宏MAX_PATH來代替1024.它是一個系統限制文件路徑的長度。 – user2275219

+0

啊有道理 - 我更習慣於Win32版本。我更新了使用_wfopen_s的答案,它不需要文件名轉換,也不是不推薦使用/不安全的函數(fopen和_wfopen都是)。 –

+0

我發現你回答了我的兩個問題。很感謝。這裏是我的新問題ID 15990188.你能幫我嗎? – user2275219

相關問題