请问高手,如何在不退出主程序的情况下对程序进行升级!请给出思路!

解决方案 »

  1.   

    实现为COM DLL,就可以避免GetProcAddress的麻烦了
    在更新dll之前release COM 就好了
      

  2.   

    把程序做成一个两个应用程序可以动态切换的结构,实际上这两个应用程序是一个程序的两个拷贝,但允许在界面上进行动态切换。当某个应用程序暂时停止时,另外一个接管其所有未完成事务和数据。然后暂停的程序终止运行。(当然可以让另外的拷贝先运行起来,暂停的程序可以边输出必要的信息给另外的拷贝)有了这种结构以后,先准备好新的程序的两个拷贝。然后让老的程序A(正在运行中的)暂停,让老的程序A2开始运行(实际上是接着A运行);终止A的运行。用新的程序B替换A的可执行文件。然后A2暂停,B开始运行;终止A2的运行。用新的程序B2替换A2的可执行文件。即可。