设为首页 加入收藏

TOP

利用curl下载文件(进度条显示)代码片段
2014-11-23 22:03:17 】 浏览:286
Tags:利用 curl 下载 文件 进度 显示 代码 片段


  首先需要加入多线程的机制,因为程序一边在下载文件,一边在显示进度条,单线程的方式肯定不行,所以我用到了wxTimer来实现,在downloadMain.h 中定义了一个wxTimer,并做了事件申明.
  DECLARE_EVENT_TABLE()
  #ifndef DOWNLOADMAIN_H
  #define DOWNLOADMAIN_H
  #include "downloadApp.h"
  #include
  #include "GUIDialog.h"
  class downloadDialog: public GUIDialog
  {
  public:
  downloadDialog(wxDialog *dlg);
  ~downloadDialog();
  void OnTimer(wxTimerEvent& event);
  private:
  virtual void OnClose(wxCloseEvent& event);
  virtual void OnQuit(wxCommandEvent& event);
  virtual void OnAbout(wxCommandEvent& event);
  void downloadfile();
  wxTimer* m_timerdown;
  DECLARE_EVENT_TABLE()
  };
  #endif // DOWNLOADMAIN_H
  下面是主程序的代码.
  #ifdef WX_PRECOMP
  #include "wx_pch.h"
  #endif
  #ifdef __BORLANDC__
  #pragma hdrstop
  #endif //__BORLANDC__
  #include "downloadMain.h"
  #include
  #include
  #include
  #include "update.h"
  #include
  #include
  #define TIMER_ID 22222
  //事件监听声明
  BEGIN_EVENT_TABLE(downloadDialog, GUIDialog)
  EVT_TIMER(TIMER_ID, downloadDialog::OnTimer)
  END_EVENT_TABLE()
  enum wxbuildinfoformat
  {
  short_f, long_f
  };
  wxString wxbuildinfo(wxbuildinfoformat format)
  {
  wxString wxbuild(wxVERSION_STRING);
  if (format == long_f )
  {
  #if defined(__WXMSW__)
  wxbuild << _T("-Windows");
  #elif defined(__WXMAC__)
  wxbuild << _T("-Mac");
  #elif defined(__UNIX__)
  wxbuild << _T("-Linux");
  #endif
  #if wxUSE_UNICODE
  wxbuild << _T("-Unicode build");
  #else
  wxbuild << _T("-ANSI build");
  #endif // wxUSE_UNICODE
  }
  return wxbuild;
  }
  //声明一个文件结构体
  struct FtpFile
  {
  char *filename;
  FILE *stream;
  };
  downloadDialog::downloadDialog(wxDialog *dlg)
  : GUIDialog(dlg)
  {
  //创建一个定时器,制定TIMER_ID
  m_timerdown = new wxTimer(this, TIMER_ID);
  //定时器开始运行,这里会自动执行OnTimer函数
  m_timerdown->Start(100);
  }
  downloadDialog::~downloadDialog()
  {
  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言的License配置 下一篇计算机等级考试C语言上机考试改错..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目