如何实现在线更新程序

Greg_han 2013-09-04 10:42:32
我用MFC做了一个程序,有exe,dll,lib,xml等文件,还想能够实现在线更新功能,请问有什么方案,用什么技术?
...全文
205 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
5t4rk 2013-09-05
  • 打赏
  • 举报
回复
socket wininet 都行。。。自己决定。。可以单独坐成update.exe 版本验证,数据下载
Greg_han 2013-09-05
  • 打赏
  • 举报
回复
如何配置一个HTTP服务器?
现在 在网上找到如下可参考的代码

HINTERNET hssetion;
HINTERNET hConnect;
HINTERNET hRequrest;

hssetion = InternetOpenA( "httpDownload", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0 );
if ( NULL == hssetion )
{
// ::AfxMessageBox("open failed");
MessageBoxA(NULL,"open failed","caption",MB_OK);
return 1;
}

hConnect = InternetConnectA( hssetion, "127.0.0.1", INTERNET_DEFAULT_HTTP_PORT,
NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0 );
if ( NULL == hConnect )
{
//::AfxMessageBox("connect failed");
MessageBoxA(NULL,"connect failed","caption",MB_OK);
return 0;
}

const char* pFileType = "*/*";
hRequrest = HttpOpenRequestA( hConnect, "GET", "musictop//new//1214793378.wma", "HTTP/1.1", NULL,
&pFileType, INTERNET_FLAG_RELOAD, 0 ); //<3> 类型为“文本型”。页面的地址,,<>

if ( NULL == hRequrest )
{
//::AfxMessageBoxA("open requrest failed");
MessageBoxA(NULL,"open requrest failed","caption",MB_OK);
return 1;
}

BOOL bBet = HttpSendRequest( hRequrest, NULL, 0, NULL, 0 );
if ( !bBet )
{
//::AfxMessageBoxA("send request failed");
MessageBoxA(NULL,"send request failed","caption",MB_OK);
return 1;
}
DWORD BufLen=4*1024*10;
char buffer[4*1024*10] = {0};
DWORD infoLen=4*1024*10;

DWORD dwIndex=0;
bool RetQueryInfo=HttpQueryInfo(hRequrest,
HTTP_QUERY_CONTENT_LENGTH,
buffer, &infoLen,
&dwIndex);
七擒关羽 2013-09-04
  • 打赏
  • 举报
回复
安装部分为客户端,启动后与服务端连接,进行版本验证,根据不同版本传输需要更新的部分 实际做的是传输、文件替换,重启客户端

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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