我有一个GetPrivateProfileString从文件“.\abcd.ini”中读取的程序——即它将在当前目录中查找ini 文件。如果没有找到 ini 文件,则在第三个参数中将默认值设置为GetPrivateProfileString.
我有一个将程序安装到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 文件(x86)的完全权限。但是,程序本身不会写入 ini 文件,它只会从中读取。
这真的是它应该的样子吗?为什么将ini文件复制到AppData&如果没有本地副本,为什么程序会从那里读取?
我在 Windows 10 64 位。