子游戲下載一半重新下載

今天一朋友問我說子游戲下載一半又重新下載,給了他一份源碼自己對比,還真找出來了。

是因爲 定義問題,導致下載計算不正確。將原來是DWORD類型改成LONGLONG 行就可以了。

涉及文件:客戶端組件\遊戲廣場\DlgDownLoad.cpp  第871行左右

原始代碼:

//繪畫消息
VOID CDlgDownLoad::OnDrawClientArea(CDC * pDC, INT nWidth, INT nHeight)

	//下載進度
	if (pDownLoadSink->m_cbDownLoadStatus!=DOWN_LOAD_IDLE)
	{
	    //計算比例
	    DWORD dwDownScale=0L;
	    if (pDownLoadSink->m_dwTotalFileSize>0L)
	    {
	      dwDownScale = pDownLoadSink->m_dwDownLoadSize * 100 / pDownLoadSink->m_dwTotalFileSize;
	    }
修改成:
	//下載進度
	if (pDownLoadSink->m_cbDownLoadStatus!=DOWN_LOAD_IDLE)
	{
	    //計算比例
	    LONGLONG dwDownScale=0L;
	    LONGLONG m_dwTotalFileSize=0L;
	    LONGLONG m_dwDownLoadSize=0L;

	    if (pDownLoadSink->m_dwTotalFileSize>0L)
	    {
	      m_dwDownLoadSize = pDownLoadSink->m_dwDownLoadSize;
	      m_dwTotalFileSize = pDownLoadSink->m_dwTotalFileSize;
	      dwDownScale = m_dwDownLoadSize * 100 / m_dwTotalFileSize;
	    }

感謝牛同學提供!

BY:悟透




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章