zoukankan      html  css  js  c++  java
  • 周报_2012第17周(2012/04/222012/04/28)

    2012.04.28

    复杂问题研究:升级shell扩展com库

    explorer根据guid区分不同的com库

    explorer不重新启动则始终在其内存中驻留旧的com库程序

    rgs注册表项为com库的调用方入口

    explorer使用相同的旧的guid(新升级版本的rgs注册表项)调用其内存中驻留的旧com库,崩溃的是旧dll库,与新dll库无关,所以新增调用接口无法兼容预防旧程序崩溃。

    explorer使用新guid与其内存中驻留的旧com库不匹配,不能调用程序,所以右键菜单扩展显示为空。

    所以新增调用入口时防止旧com库崩溃的方法是[升级guid],结果为不显示右键菜单的shell扩展,explorer重新启动后将提升dll版本号(即加载新的guid库)加载新的com库程序。(应尽可能的在最初设计时完善调用入口 - 注册表项 ShellEx\ContextMenuHandlers)

    覆盖原dll文件位置安装时(删除原dll并在相同位置粘贴新dll),explorer同时保存2个版本dll(包含已删除的原有dll),explorer使用新升级guid和新dll库匹配,但是explorer使用未提升的旧的dll版本号,不能加载。

    删除原dll文件在新位置安装时,explorer使用新升级guid和新dll库匹配,并提升新dll版本号,正确加载shell扩展库。

    -----------------------------------------------------------------------

    个体与交互 胜过 过程与工具

    可以工作的软件 胜过 面面俱到的文档

    客户协作 胜过 合同谈判

    响应变化 胜过 遵循计划

    -----------------------------------------------------------------------

    软件产品研发部 李树鹏

    大连启明海通信息技术有限公司

    地址:大连市高新技术产业园区信达街57号

    手机:13942696565

    =========================
     

  • 相关阅读:
    SpringRMI解析3-RmiServiceExporter逻辑细节
    SpringRMI解析2-RmiServiceExporter逻辑脉络
    SpringRMI解析1-使用示例
    SpringMVC解析5-DispatcherServlet逻辑细节
    SpringMVC解析4-DispatcherServlet逻辑脉络
    SpringMVC解析3-DispatcherServlet组件初始化
    SpringMVC解析2-ContextLoaderListener
    算法笔记_074:子集和问题(Java)
    算法笔记_073:哈密顿回路问题(Java)
    算法笔记_072:N皇后问题(Java)
  • 原文地址:https://www.cnblogs.com/DancingFish/p/2475806.html
Copyright © 2011-2022 走看看