复制到system32后,文件将被更改

时间:2013-04-03 08:13:10

标签: c++ windows

我有一个帮助器DLL,我长时间使用它的签名没有任何变化,我将它复制到system32以便在我的所有产品中使用它,现在我为它添加了一个函数导出列表并编译它,一切看起来还可以,我有一个包含指定函数的新DLL。我的问题是当我将它复制到system32指定的函数丢失时,看起来它将以某种方式从缓存中复制并且将加载它的一些旧版本,因此依赖于新函数的程序将失败!有谁知道这是什么问题?

2 个答案:

答案 0 :(得分:2)

很可能你有64位系统。您将文件复制到64位系统目录system32。但是,由于文件系统重定向器,您的32位应用程序从32位系统目录SysWOW64加载它。

通过复制到SysWOW64来解决问题。

你可能知道这一点,但无论如何我都不得不说出来。系统目录属于系统,您不应该写入它。

答案 1 :(得分:0)

使用此命令清除dll缓存。这已经在Win XP和Win 7上进行了测试。

sfc /purgecache

请注意,您需要成为管理员才能运行此命令或“以管理员身份运行”。不是100%确定这是否能解决您的问题。