tag_BIGINT

来源:互联网 发布:个性挂历制作软件 编辑:程序博客网 时间:2024/06/07 22:30

前言
想不起M$的大整形数据结构是什么名字, 也不想去google.
自己模拟了一个BIGINT数据结构, 机智啊^_^
demo

    /// 想不起M$大整形是啥了, 自己定义一个    typedef struct _tag_BIGINT {        union {            struct {                DWORD dwLow;                DWORD dwHigh;            };            LONGLONG llVal;        };        _tag_BIGINT() {            llVal = 0;        }    }tag_BIGINT;
    tag_BIGINT m_BIFileSizeSrc; ///< 源文件size    tag_BIGINT m_BIFileSizeDst; ///< 目标文件写了多少size
        m_BIFileSizeSrc.dwLow = GetFileSize(hSrc, &m_BIFileSizeSrc.dwHigh);
        while (!m_bStopThread) {            if (!ReadFile(hSrc, pBuf, dwBufSize, &dwRdBk, NULL) || (0 == dwRdBk)) {                break;            }            dwWasWr = 0;            while (1) {                if (!WriteFile(hDst, pBuf + dwWasWr, dwRdBk, &dwWasWrOnce, NULL)) {                    break;                }                dwWasWr += dwWasWrOnce;                m_BIFileSizeDst.llVal += dwWasWrOnce;                dwRdBk -= dwWasWrOnce;                 if (dwRdBk <= 0) {                    break;                } else {                    TRACE(_T("try again, dwWasWrOnce = 0x%X\n"), dwWasWrOnce);                }            }        }
0 0
原创粉丝点击