首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

子类化桌面窗口,explorer进程就崩溃.内存访问异常

2012-02-02 
子类化桌面窗口,explorer进程就崩溃.内存访问错误。C/C++ codecase DLL_PROCESS_ATTACH:{GetModuleFileName

子类化桌面窗口,explorer进程就崩溃.内存访问错误。

C/C++ code
    case DLL_PROCESS_ATTACH:        {            GetModuleFileName(NULL, FileName, sizeof(FileName));                        if (strstr(FileName, "explorer.exe"))            {                HWND hwnd = FindWindow("Progman", "Program Manager");                hwnd = FindWindowEx(hwnd, NULL, "SHELLDLL_DefView", NULL);                hwnd = FindWindowEx(hwnd, NULL, "SysListView32", "FolderView");                OldMsgProc = (WNDPROC)SetWindowLongPtr(hwnd, GWL_WNDPROC, (LONG)newMsgProc);            }        }LRESULT CALLBACK newMsgProc(HWND hDeskTop, UINT message, WPARAM wParam, LPARAM lParam){    switch(message)     {    case LVM_SETITEMPOSITION32:     case LVM_SETITEMPOSITION:        return 0;    default:        break;    }         //注释掉swithc语句块一样会崩溃    return CallWindowProc(OldMsgProc, hDeskTop, message, wParam, lParam);}

即使新窗口消息过程不做任何事,只
C/C++ code
return CallWindowProc(OldMsgProc, hDeskTop, message, wParam, lParam);

调试两三次explorer进程就会崩溃。

[解决办法]

热点排行