1 开始相关函数
void CHashToolDlg::BeginComputeHashInfo(CString filePath)
{
CString *tmp = new CString();
*tmp = filePath.GetBuffer();
if(PathIsDirectory(*tmp))
{
MessageBox("Does not support directory","Warning", MB_OK|MB_ICONWARNING);
return;
}
HWND hWnd = AfxGetMainWnd()->GetSafeHwnd();
if(::SendMessage(hWnd, WM_Create_Progress_Bar, (WPARAM)tmp, NULL))
{
//exist same file
return;
}
AfxBeginThread(ThreadComputeHashInfo, tmp);
}
UINT CHashToolDlg::ThreadComputeHashInfo(LPVOID pParam)
{
CString* filePath = (CString*)pParam;
CHashTool hashTool;
HWND hWndMainDlg = AfxGetMainWnd()->GetSafeHwnd();
if(!hashTool.GetHashInfo(*filePath, hWndMainDlg))
{
::SendMessage(hWndMainDlg, WM_Delete_Progress_Bar, (WPARAM)filePath, NULL);
}
delete filePath;
return 0;
}
BOOL CHashTool::GetHashInfo(CString filePath, HWND mainDlg)
{
BOOL result;
bStopHa

本文介绍如何在MFC环境中实现一个哈希值计算器。文章涵盖了从开始计算到停止计算的相关函数,涉及MFC、字节处理、WinAPI及缓冲区管理等技术。
最低0.47元/天 解锁文章
210

被折叠的 条评论
为什么被折叠?



