QQ登录

只需一步,快速开始

407上位机VC MFC实现软件联网更新

[ 复制链接 ]

上位机VC MFC实现软件联网更新

上位机VC MFC实现软件联网更新

实现软件联网更新
功能展示
程序都有更新需要,我们当前例程实现联网更新程序功能,效果如图,点击<检查更新程序>例程会从服务器下载版本文件读取信息并与本地文件内的版本对比,需要更新则下载服务器版本文件内的全部文件到根目录Temp文件夹内并显示下载进度。下载完成会调用Temp文件夹下MoveFile程序执行新文件的更换

要点提示
文件更新流程大致为:点击<检查更新程序>按钮调用CheckVersion()函数从服务器下载版本文件读取版本与本地的文件进行版本对比,需要更新则启动一线程ThreadProc() 通过函数GetUpdateFileInfo()读取版本文件内全部要下载更新的文件,通过DownLoadFile()将文件全部下载。下载完成最后会调用RefreshVersion()更新本地的版本文件退出例程,及启动根目录Temp下MoveFile.exe程序执行文件的新旧替换;

例程主要添加的自定义函数有double CheckVersion();/用以检查是否有新版本
void DoUpdate();//执行文件更新,例程中由线程调用执行;
void GetUpdateFileInfo();//获取要更新的文件名及下载地址保存在成员变量m_mapFile里;
BOOL DownloadFile(UINT nNumber,CString &strName,CString &strUrl);//下载文件并显示进度在列表框内
BOOL DownLoadFile(CString &strUrl);//下载文件到程序根目录Temp文件夹里;
void RefreshVersion();//刷新当前软件版本信息文件,关闭程序并调用Temp文件夹里的程序MoveFile.exe

实现功能
1.新建基于对话框的应用程序
2.复制根目录下载用文件HttpSocket.cpp, HttpSocket.h到例程工程目录,并加载到工程,在stdafx.h添加头文件#pragma warning(disable:4786) #include <vector> #include <map>using namespace std;
#include <io.h> #include "HttpSocket.h“
3.添加列表框关联变量CListCtrl m_listFile;用于显示下载进度。添加<检查更新程序>按钮关联函数实现程序更新
void CGkbc8Dlg::OnCheck()
{
CString sText;
double dbCheck=0;
dbCheck = CheckVersion();
if(dbCheck>0)
{
sText.Format("已检测到新版本:%0.3f,是否更新",dbCheck);
if(IDYES != MessageBox(sText,"提示",MB_YESNO) )
return;
}
else if(dbCheck==0)
{
MessageBox("已是最新版本,无需更新");
return;
}
else//出错
{
sText.Format("检查出错,代码: %0.0f",dbCheck );
MessageBox(sText,"提示");
return;
}
AfxBeginThread(ThreadProc,this);
}
4.添加线程函数ThreadProc()及自定义的其他函数,并在程序初始化初始化列表控件
UINT ThreadProc( LPVOID pParam )
{
CGkbc8Dlg* pDlg = (CGkbc8Dlg*) pParam;
ASSERT(pDlg);
pDlg->DoUpdate();
return 0;
}
public:
double CheckVersion();//检查是否有新版本
void DoUpdate();//执行更新(被线程调用)
private:
void GetUpdateFileInfo();//获取要更新的文件名及下载地址
BOOL DownloadFile(UINT nNumber,CString &strName,CString &strUrl);//下载文件
BOOL DownLoadFile(CString &strUrl);//下载文件
void RefreshVersion();//刷新当前软件版本信息
map<CString,CString> m_mapFile; //保存需要更新的文件信息

m_listFile.ModifyStyle(0,LVS_REPORT,NULL);
m_listFile.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT
|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES);
m_listFile.InsertColumn(0,"文件名",LVCFMT_LEFT,100,0);
m_listFile.InsertColumn(1,"大小",LVCFMT_LEFT,70,0);
m_listFile.InsertColumn(2,"进度",LVCFMT_LEFT,100,0);

5.最后复制根目录下Temp文件夹进行测试,文件夹内MoveFile.exe的工程源代码对应根目录文件MoveFile.zip

我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:407.上位机VC MFC实现软件联网更新.zip 
文件大小:165.66 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我


  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!







回复

使用道具 举报

快速回复 返回列表 客服中心 搜索