【问题标题】:Platform target at Any CPU or x64 locks files任何 CPU 或 x64 的平台目标锁定文件
【发布时间】:2012-05-03 16:03:37
【问题描述】:

我注意到,当您将 Visual Studio 中的 Platform target 设置为 Any CPU / x64 时,某些文件会被锁定(例如,aticfx64.dll,它是 AMD 显示器的设备驱动程序文件)。但是,对于 x86 上的 Platform 目标,没有文件被锁定。

我们需要 Any CPU 上的 Platform 目标,但我们不希望这些文件被锁定。我已经上网了,但找不到有关此问题的任何信息。有没有人有关于如何解决这个问题或遇到类似问题的建议?谢谢;)

【问题讨论】:

    标签: c# wpf file locking


    【解决方案1】:

    对于 32 位和 64 位应用程序,注册表中有不同的 AppInit_DLLs 列表。一般来说,DLL注入会因进程位数而异。

    您可能需要仔细检查预加载 DLL 的注册表列表并删除任何您不想要的。

    【讨论】:

    • 我不完全确定我的问题与 dll 注入有什么关系。如果您想知道,AppInit_DLLs 中的唯一条目是guard.dll。
    • @Phyxion:DLL 被锁定的最可能原因是它是通过注入加载到进程中的。你可以使用例如Process Explorer 查看加载的 DLL 列表?
    • 谢谢你,现在我明白你的回答了。是的,该 dll 确实存在(在一长串其他 dll 中)。也就是说,它可以修复吗?我当然不希望这些 dll 加载。仅供参考,我没有引用它们,因为它们是在运行时以某种方式加载的。
    • 我设法通过使用 FreeLibrary + GetModuleHandle 函数卸载它。感谢您的帮助!
    • 也就是说,它在多次 FreeLibrary 调用时崩溃(可能是因为使用了 DLL)。真正的问题仍然存在,如何防止这些文件被加载?
    猜你喜欢
    • 2021-10-22
    • 2011-08-21
    • 1970-01-01
    • 2011-04-30
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    相关资源
    最近更新 更多