我们编写Windows程序,经常需要自动更新,该功能如何实现呢,我们来看代码实现与注释讲解
#include "stdafx.h"
#include "AutoUpdate.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// 唯一的应用程序对象
CWinApp theApp;
using namespace std;
#define MYVERSION 5 //定义程序版本。请注意:每次发布,值应该不相同,建议使用自然数递增数列!
DWORD WINAPI UpdateThreadProc(LPVOID lParam)
{
/*
*如果有必要,可以使用GetTempPath() 函数获取系统临时文件目录,将用到的文件下载至该目录。本实例中直接使用程序当前目录,
*并在升级完成时将其删除。
*/
wchar_t *TempFileName= new wchar_t[255]; //升级文件临时文件名,在该程序中为“AutoUpdate_.exe”
wmemset(TempFileName,0,255);
wsprintf(TempFileName,L"%s_.exe",AfxGetApp()->m_pszAppName); //wsprintf对字符串进行格式化处理
URLDownloadToFile(NULL,_T("http://127.0.0.1/update.txt")/*升级信息配置文件,请根据实际自行修改*/, _T("Update.ini"),0,NULL);
FILE *pFile=_wfopen(L"update.ini",L"r");
if(!pFile)
return -1; //如果打开文件失