您的位置:首页 > 其它

tag_BIGINT

2016-03-18 10:42 169 查看
前言

想不起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);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: