遇到一个问题,主程序不能停止,而其中的某些模块需要不断更新,怎样实现这样的解决方案?

解决方案 »

  1.   

    用LoadLibrary加载、FreeLibrary卸载就可以了。
      

  2.   

    不就是dll的动态加载吗?LoadLibrary可以,用COM也可以:CoCreateInstance。
      

  3.   

    动态方式加载就可以可以直接用动态库到处api接口,不过接口要稳定,不然你的主程序就要停下来了,也可以更复杂一点,做成com接口
      

  4.   

    关键是LoadLibrary后我的dll文件还是不能替换啊?
      

  5.   

    LoadLibrarygoogle 搜: 动态加载dll
      

  6.   

    用LoadLibrary加载、FreeLibrary卸载就可以了。
      

  7.   

    正在使用的时候是不能替换的,主程序应该尽量短时间地使用DLL,每次用前Load、用完后Free,在Load时判断是否成功,如果Load失败,就Sleep一下再重试。如果主程序使用DLL非常频繁,不便每次Load,可以在主程序中设计一个更新机制,当要更新DLL时,先暂停工作,将DLL Free,更新后再重新Load。如果更新功能由外部程序来实现,可以通过命名事件/命名互斥对象来实现与主程序同步。
      

  8.   

    在使用的时候,自然是不能替换的,这个时候就需要你能通知它Free了,然后做自己的替换工作,类似各种软件的Update
      

  9.   

    LoadLibrary
    使用dll中函数;
    停止dll中正在使用的函数;
    FreeLibrary
    ... ...
    LoadLibrary
    使用dll中函数;
    停止dll中正在使用的函数;
    FreeLibrary完全可以的。我经常用。
      

  10.   

    LoadLibrary加载,使用完毕,FreeLibrary卸载