怎么要编写一个软件的升级包

chen2009zhou 2011-05-11 02:09:15
我用VC++编写了一个软件,后然想增加一个新的功能,希望通过升级的形式添加到旧的软件中去。
请问,这个升级程序应该怎么写呢?
写好后,又用什么工具去打包呢?
希望给点意见
...全文
222 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
e01620230 2011-06-11
  • 打赏
  • 举报
回复
update.exe是自己写的独立于主程序的升级更新程序。
主要目的是主程序检测到有更新了,提示用户是否需要下载后,如果用户确认那主程序调用改部件进行升级包下载。
升级如果正在使用的DLL的话,不可避免的需要先关闭加载的dll,不然是替换不上去的,你说的回调来实现,也同样会遇到这个问题,回调只是传递一个地址表示某个处理需要这个地址下的函数来处理。你可以用回调来编写调用升级程序,但是根本的升级问题貌似没有解决(升级如果正在使用的DLL的话,不可避免的需要先关闭加载的dll)。
具体的代码还真的不好找,以前工作单位里写的,具体代码没有了。
个人见解,往懂得的高手指点下,或提出更好的见解
lcyw 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 e01620230 的回复:]
打包工具 NSIS(Nullsoft Installation System)这个比较可以的
类似的升级做过
1.需要放置升级包的服务器
2.启动时候主程序里面需要检查服务器版本是否有更新
3.启动update.exe下载指定服务器上的升级包
4.下载后自动解压,由于一般升级的部件可能会被程序调用,解压的文件命名成临时文件
5.提示重启软件,首先启动其他一个插件升级的文件命名成需要调用……
[/Quote]


我也是这么干的,,,,

chen2009zhou 2011-06-02
  • 打赏
  • 举报
回复
sayhello朋友
我是初学者,对你说的那些思路,理解不过来的,update.exe这个应该也要我们自己编写的是吗?有没有简单一点的实例呢?
顺便问下,能不能在C++的类中定义一个回调函数呢。如这种形式的BOOL CALLBACK ClassDlgProc(HWND hDlg, UINT message,WPARAM wParam, LPARAM lParam);
e01620230 2011-05-19
  • 打赏
  • 举报
回复
打包工具 NSIS(Nullsoft Installation System)这个比较可以的
类似的升级做过
1.需要放置升级包的服务器
2.启动时候主程序里面需要检查服务器版本是否有更新
3.启动update.exe下载指定服务器上的升级包
4.下载后自动解压,由于一般升级的部件可能会被程序调用,解压的文件命名成临时文件
5.提示重启软件,首先启动其他一个插件升级的文件命名成需要调用的部件名,然后删除old部件
6.启动主程序更新完成
以前做的基本思路这样,也能升级,都是不正规的东东能用就可,安全上做了点签名检测。
向立天 2011-05-18
  • 打赏
  • 举报
回复
升级
你有服务器么?
chen2009zhou 2011-05-18
  • 打赏
  • 举报
回复
各位,能不能说详细点,或者能不能给给例子
无幻 2011-05-18
  • 打赏
  • 举报
回复
你可以替换整个程序exe,也可以替换DLL。
第一种替换整个程序比较简单,直接覆盖。
第二种就是类似很多软件都有的插件功能。
96掌门师兄 2011-05-18
  • 打赏
  • 举报
回复
大致的思路是通过替换dll库实现的。所以在设计接口的时候就要考虑到日后的升级问题。。
winginsky 2011-05-13
  • 打赏
  • 举报
回复
单独写个程序,对比本地程序文件和服务器上程序文件,下载需要更新的文件。
chen2009zhou 2011-05-13
  • 打赏
  • 举报
回复
难道就没人知道吗?海海················
oyljerry 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chen2009zhou 的回复:]
难道就没人知道吗?海海················
[/Quote]
自己的程序要有一个update.exe,然后就可以通过它下载一个zip等文件包,然后在机器上解压,然后进行替换等工作.
标哥 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ouyh12345 的回复:]
wix
[/Quote]
我也百度了一下,学习了
wshcdr 2011-05-12
  • 打赏
  • 举报
回复
wix是什么?
ouyh12345 2011-05-11
  • 打赏
  • 举报
回复
wix

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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