1 開始相關函式
void chashtooldlg::begincomputehashinfo(cstring filepath)
hwnd hwnd = afxgetmainwnd()->getsafehwnd();
if(::sendmessage(hwnd, wm_create_progress_bar, (wparam)tmp, null))
afxbeginthread(threadcomputehashinfo, tmp);
}uint chashtooldlg::threadcomputehashinfo(lpvoid pparam)
delete filepath;
return 0;
}
2 計算相關函式
bool chashtool::gethashinfo(cstring filepath, hwnd maindlg)
else
", getlasterror(), mb_ok|mb_iconwarning);
result = false;
} return result;
}
bool chashtool::initcreatehash(hcryptprov* hprov, hcrypthash* hhash, alg_id algid)
return true;
}bool chashtool::computehashvalue(hcryptprov* hprov, hcrypthash* hhash, byte* input, dword inputlength)
if(fileinfo.percent >= 100)
clearhash(hprov, hhash);
} return true;
}void chashtool::clearhash(hcryptprov* hprov, hcrypthash* hhash)
////alg_id: calg_md5, calg_sha1
//bool chashtool::computehash(cstring filepath)
if(!initcreatehash(&hprov_sha1,&hhash_sha1, calg_sha1))
cfile file;
if(!file.open(filepath, cfile::typebinary|cfile::moderead|cfile::sharedenynone))
ulong read = 0;
ulonglong position = 0;
ulonglong length = file.getlength();
char buffer[bytes_per_read] = ;
doread = file.read(buffer, bytes_per_read);
position += read;
if(length == 0)
else
if(!computehashvalue(&hprov_md5, &hhash_md5, (byte*)buffer, read))
if(!computehashvalue(&hprov_sha1, &hhash_sha1, (byte*)buffer, read))
if(hwndmaindlg != null)
}while(position < length);
file.close();
if(bstophash)
return false;
else
return true;
}
3 停止計算
void chashtooldlg::ondestroy()
void chashtooldlg::onbnclickedstophashbutton()
這個地方遇到個問題,關閉視窗後,需要等待所有執行緒正常退出才可以。搜了會解決方案,有人建議用waitformultipleobjects。但是感覺比較麻煩。暫時先sleep 3s解決 模擬計算器(MFC)實現
忙了一天終於搞定了。以下為演算法類封裝 caldlg.cpp implementation file author baker email baker1203 sina.com course designing for data structures and program design in c ...
網頁版計算器的實現 js實現計算功能
今天帶大家做乙個網頁版的計算器,頁面使用js完成計算,介面的效果如下 可以看到介面還是挺清爽的,但是功能呢?這裡呢,介面上看到的這些按鈕的功能都是可以用的 可以看到有括號也是可以算的.好了,接下來帶大家來實現一下 首先就是布局,這個沒有什麼好說的,學點html和css馬上就可以弄出這個介面,所以我就...
計算器的實現
計算器?不是非常簡單嗎?宣告兩個float型變數,再加上操作符,自動計算結果出來!public static float calc float a,float b,int operator 呵呵,這麼簡單,那就沒必要寫成文章了 這裡要說的是 程式計算表示式的值,比如 1 2 3 5 9 就是簡單兩個...