我有一個程序,它從文件「。\ abcd.ini」中讀取GetPrivateProfileString
- 即它將查找當前目錄中的ini文件。 如果沒有找到ini文件,它將在第三個參數中設置爲GetPrivateProfileString
的默認值。GetPrivateProfileString和AppData VirtualStore目錄
我有一個安裝程序,它將程序安裝到c:\program files (x86)\abcd\client
目錄。
最初,安裝程序還在具有特定配置文件字符串鍵/值對的相同目錄中安裝了abcd.ini文件。發佈後,我將安裝程序更改爲不安裝任何ini文件。
但是,該程序繼續從舊的ini文件中獲取該值,即使該文件不存在於該目錄中,該值也已發送。
做了系統範圍的搜索後,我發現abcd.ini的副本c:\Users\myusername\AppData\Local\VirtualStore\Program Files (x86)\abcd\Client
一旦我刪除了這一點,該程序工作正常(因爲如果沒有ini文件)。
谷歌搜索似乎使用虛擬庫,因爲myuser沒有c:\ program files(x86)的完整權限。但是,程序本身不寫入ini文件,它只能從中讀取。
這實際上是應該如何?爲什麼ini文件複製到AppData &爲什麼程序從那裏讀取,如果沒有本地副本?
我在Windows 10 64位。
評論不適用於擴展討論;這個對話已經[轉移到聊天](http://chat.stackoverflow。COM /間/ 150849 /討論上個問題按user93353-getprivateprofilestring-和應用程序數據虛函數)。 – meagar
如果要禁用VirtualStore,請添加清單文件。有關更多信息,請參閱https://stackoverflow.com/a/4730128/1983398。 – ssbssa