【问题标题】:dll replace in a big system大系统中的dll替换
【发布时间】:2013-03-19 07:30:29
【问题描述】:

更改 dll 时,我必须将其放在系统加载到内存的目录中。问题是每次改完都要关闭系统,换个新的dll再启动系统。大约需要 15/20 分钟,非常长。

谁能告诉我如何避免这种情况?

【问题讨论】:

    标签: visual-c++ dll


    【解决方案1】:

    当您想要快速切换 DLL 版本时,请将 DLL 与可执行文件放在同一目录中,或者在项目设置 -> 配置属性 -> 调试 -> 环境中提供切换 DLL 的目录的路径。这样你就不必再弄乱你的 Windows 系统目录了。

    不过,微软声明here

    如果内存中已经加载了具有相同模块名称的 DLL,则系统在解析到加载的 DLL 之前只检查重定向和清单,无论它位于哪个目录。系统不会搜索 DLL。

    如果AlwaysUnloadDLL 适合你,你可以试试。

    【讨论】:

    • Visual Studio 放置 dll 的目录是固定的,我无法更改。系统从中获取 dll 的目录也是固定的,不能更改。我需要的是某种批处理程序或任何实用程序,它将杀死访问 dll 的进程,然后替换 dll 然后重新启动程序。
    • 您的意思是已经加载到内存中的 DDL?当它们尚未加载时,我的回答实际上适用。请参阅msdn.microsoft.com/en-us/library/windows/desktop/… 和类似问题:stackoverflow.com/questions/518228/… 如果这不是您要查找的内容,请更清楚地解释您的问题。
    • 那个微软链接很有帮助。我的意思是已经加载到内存中的 DLL。我想替换 DLL 文件并重新加载到内存中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 2012-01-07
    • 2021-09-29
    相关资源
    最近更新 更多