我有一个程序,它从文件“。\ 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