static HHOOK hMsgBoxHook = NULL;
static LRESULT CALLBACK MsgBoxCBTProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    switch (nCode) {
    case HCBT_ACTIVATE:
        HWND hWnd = (HWND)wParam;
        SetDlgItemText(hWnd, IDYES, "继续");
        SetDlgItemText(hWnd, IDNO, "退出");

        return 0;
    }

    return CallNextHookEx(hMsgBoxHook, nCode, wParam, lParam);
}

static int MyMsgBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType)
{
    hMsgBoxHook = SetWindowsHookEx(WH_CBT, MsgBoxCBTProc, NULL, GetCurrentThreadId());
    int ret = MessageBox(hWnd, lpText, lpCaption, uType);
    UnhookWindowsHookEx(hMsgBoxHook);
    return ret;
}



本文链接地址: 修改Windows的MessageBox按钮文字
https://blog.qingfengju.com/index.asp?id=453

分类:Win32/C++ 查看次数:2469 发布时间:2024/4/29 22:01:31

unsigned int RtlComputerCrc32(void* pData, int iLen)
{
	typedef unsigned int(__stdcall *pfnAPI)(int dwInitial, void* pData, int iLen);

	HMODULE tMod = LoadLibrary("ntdll.dll");
	pfnAPI tProc = (pfnAPI)GetProcAddress(tMod, "RtlComputeCrc32");

	return tProc(0, pData, iLen);
}

需要注意的是,这个API内部的算法与gnu的cksum并不相同,因此计算结果也是不同的。


本文链接地址: 用Windows系统自带的RtlComputeCrc32计算CRC32
https://blog.qingfengju.com/index.asp?id=448

分类:Win32/C++ 查看次数:22452 发布时间:2021/12/13 21:17:09