首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows XP中手动更新shell32.dll是否安全/实用?

在Windows XP中手动更新shell32.dll是否安全/实用?
EN

Stack Overflow用户
提问于 2011-09-13 00:57:56
回答 6查看 1.8K关注 0票数 1

我正在运行我的开发环境Windows XP。我需要访问函数SHGetKnownFolderPath。我的团队建议我简单地用他们的shell32.dll更新我的shell32.dll,并更新我的头文件。

该函数的文档如下:http://msdn.microsoft.com/en-us/library/bb762188%28v=vs.85%29.aspx

现在,理解这个问题的焦点是通过复制-粘贴手动覆盖/更新shell32.dll的可行性。请不要回应上述功能的变通方法/替代方案。这不是这个问题的重点。

简单地将Windows 7版本的shell32.dll粘贴到我的(在XP中)是安全的吗?我不敢测试它,因为我害怕谋杀我的整个操作系统。我不知道Windows的所有库之间的依赖关系,也不知道这是否会兼容。这听起来非常不稳定,但这就是我所要做的。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-09-13 01:25:21

  1. 通过复制粘贴手动复制动态链接库将不起作用,因为WFP将启动并还原原始动态链接库。IIRC只允许来自Microsoft的数字签名更新替换正在运行的系统上的系统dlls,以避免类似的混乱。您应该脱机替换该文件(例如,从Windows/BartPE/Linux/...的另一个副本),或者以某种方式禁用/解决WFP。所以,它不是practical.
  2. Taking一个系统动态链接库从另一个版本的视窗,并复制它在那里似乎是一个可怕的想法。从Windows XP到Windows 7,shell发生了很大的变化,我敢肯定会有很多缺失的依赖项。即使您设法将Windows7外壳程序的每个文件复制到Windows XP,这些文件也将依赖于较新的user32/gdi32/ntdll/...
  3. 所以,我认为更换shell32.dll最有可能的后果是无法加载操作系统的几乎任何非核心组件:由于缺少依赖项而导致无法加载shell32.dll,几乎所有链接到它的图形用户界面可执行文件都将无法启动。所以,从技术角度来看,这不是safe.
  4. Other,而是一个问题,我强烈怀疑它也是非法的。同时拥有Windows XP和Windows 7的许可证是没有帮助的,我认为这被认为是“修改软件产品”,这是微软EULA明确禁止的。所以,这不是legal.
  5. If,你想要向后兼容XP,只需使用SHGetFolderPath,而不是做所有这些乱七八糟的事情。
票数 4
EN

Stack Overflow用户

发布于 2011-09-13 01:14:33

不应手动更改Windows DLL。Windows 7 DLL将具有无法在XP上解析的依赖项。即使这样可以工作(不太可能),下次你从Windows Update安装补丁时,它可能会因为依赖关系而崩溃,或者将你的Windows7DLL替换回XP版本。

更新:这是行不通的。Windows 7 DLL依赖于在XP中不存在的API集。

票数 5
EN

Stack Overflow用户

发布于 2011-09-13 01:16:37

在Windows XP中手动更新shell32.dll是否安全/实用?

不是的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7391308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档