cpp沒有IsolatedStorageSettings或IsolatedStorageFile。 所以我只是使用「FILE」和「fopen」來存儲遊戲數據。如何使用cpp在WP8上升級應用程序時防止丟失保存數據
但是當我使用「Xapdeploy」重新安裝或升級應用程序或使用vs. 進行調試時,保存數據將丟失。 所以我怎麼能把它標記爲IsolatedStorageFile。 我的意思是當我升級應用程序時,文件不會被系統刪除。
cpp沒有IsolatedStorageSettings或IsolatedStorageFile。 所以我只是使用「FILE」和「fopen」來存儲遊戲數據。如何使用cpp在WP8上升級應用程序時防止丟失保存數據
但是當我使用「Xapdeploy」重新安裝或升級應用程序或使用vs. 進行調試時,保存數據將丟失。 所以我怎麼能把它標記爲IsolatedStorageFile。 我的意思是當我升級應用程序時,文件不會被系統刪除。
您需要將數據保存在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);
}
非常感謝,它非常有用。 和_wfopen也在wp8中啓用,所以我們不需要將wchar_t×轉換爲char *。 並且有一個宏MAX_PATH來代替1024.它是一個系統限制文件路徑的長度。 – user2275219
啊有道理 - 我更習慣於Win32版本。我更新了使用_wfopen_s的答案,它不需要文件名轉換,也不是不推薦使用/不安全的函數(fopen和_wfopen都是)。 –
我發現你回答了我的兩個問題。很感謝。這裏是我的新問題ID 15990188.你能幫我嗎? – user2275219
什麼是您打開/寫入文件的路徑?有機會,你已經寫信給iso商店(用別名) –
我在根目錄下打開Game.sav – user2275219