今天一朋友问我说子游戏下载一半又重新下载,给了他一份源码自己对比,还真找出来了。
是因为 定义问题,导致下载计算不正确。将原来是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;
-
}
感谢牛同学提供!