我有一个帮助器DLL,我长时间使用它的签名没有任何变化,我将它复制到system32
以便在我的所有产品中使用它,现在我为它添加了一个函数导出列表并编译它,一切看起来还可以,我有一个包含指定函数的新DLL。我的问题是当我将它复制到system32
指定的函数丢失时,看起来它将以某种方式从缓存中复制并且将加载它的一些旧版本,因此依赖于新函数的程序将失败!有谁知道这是什么问题?
答案 0 :(得分:2)
很可能你有64位系统。您将文件复制到64位系统目录system32。但是,由于文件系统重定向器,您的32位应用程序从32位系统目录SysWOW64加载它。
通过复制到SysWOW64来解决问题。
你可能知道这一点,但无论如何我都不得不说出来。系统目录属于系统,您不应该写入它。
答案 1 :(得分:0)
使用此命令清除dll缓存。这已经在Win XP和Win 7上进行了测试。
sfc /purgecache
请注意,您需要成为管理员才能运行此命令或“以管理员身份运行”。不是100%确定这是否能解决您的问题。