关于程序版本在线更新的问题

kkk16 2002-01-17 01:55:08
请问大家谁做过程序版本的更新问题?比如用户在使用你的应用程序,如果你的程序有了更新的版本,用户在使用时就会及时知道。
不知能不能实现程序的在线更新,既用户在使用时不关闭程序就可以实现自动更新。
这样该怎么做?有谁做过这方面的。给点建议和指导吧。
...全文
120 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xf8zbf 2002-01-17
  • 打赏
  • 举报
回复
DLL 做成动态加载就可以删除或覆盖了吗。
倒是EXE不好办,请问运行的时候你是如何删除的?
ShyWJB 2002-01-17
  • 打赏
  • 举报
回复
学习
kkk16 2002-01-17
  • 打赏
  • 举报
回复
这个我也想过了,因为要涉及到两个进程,可能不太好。
我是这么想的:更新时可以在程序启动后自己删除自己,然后再把新下载的文件以同样的名字放在同样的地方,这样就可以实现更新了。EXE文件我想这样可以解决,现在关键的问题是我怀疑DLL文件因为正被使用不能删除或覆盖。我没有去试过,不知能不能用同样的方法在删除EXE的同时也删除所有要更新的DLL。然后新下载的文件替换,这样就只要用户重新启动程序就可以了。
不知我这样的想法是否正确?能实现吗?
Kevin_qing 2002-01-17
  • 打赏
  • 举报
回复
MFC要实现这个就比较麻烦了。我只用MFC画菜单和对话框的。功能地实现都是不使用MFC。
这样就可以动态的load 了。

其实还有其他办法的。


你可以另外作一个.exe来负责拷贝新的文件和重起你的软件。

升级的时候主exe生成子进程(比如叫update.exe),子进程等待主进程退出。
然后子进程作拷贝动作,最后重起主进程。
这样就会有一段时间不能看到界面了。
kkk16 2002-01-17
  • 打赏
  • 举报
回复
Kevin_qing():
我有一个动态连接库是MFC扩展DLL,它导出整个类的,我用的是隐式连接,即不能控制DLL的装载和卸载。
那么我想请问你怎么样用显式连接来使用一个导出整个类的DLL呢?我这个DLL好象不能象其它的DLL一样用LoadLibrary和GetProcAddress来用函数,因为我直接用它导出的类的。
Kevin_qing 2002-01-17
  • 打赏
  • 举报
回复
例子不能给你:P

等我另外写8
lxw_6 2002-01-17
  • 打赏
  • 举报
回复
好象很有新意,也可以只告诉他有更新版本,要他从新下载
kkk16 2002-01-17
  • 打赏
  • 举报
回复
有没有谁有这方面的例子??
Kevin_qing 2002-01-17
  • 打赏
  • 举报
回复
可以做到,只要把你的界面和功能分开。
程序实现的功能都放在dll里面,甚至界面都放进去。
然后用显示方式连接dll,更新时先free dll更新后重新load

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧