debug to find where it happens

解决方案 »

  1.   

    0xC0000005:Access Violation.
    检查你的指针使用。
      

  2.   

    sorry,不是256,是16K或真彩色图标。
      

  3.   

        kenny_yuan说得有道理,我也发现了。而且(讨论一下,不一定对)Win98 、Win Me 、Win2000 对图标的处理方式好像不太相同。同样一个32*32的图标(在托盘中)在Me下最好看(好像直持真彩),2000次之,98最烂,看来压缩的方式不同。
        问题我已经发现了,只要一开"南极星"就出上面的错误,关上就没事了,看来是"南"中钩子的问题。
        (如果是自己程序中有上面的错误直接就断点了,所以才有此一问。)
      

  4.   

    不一定,有的时候别的bug也会引起这种错误。
    LRESULT
    CALLBACK
    MainWndProc
    (
    HWND hwnd,
    UINT message,
    WPARAM wp,
    LPARAM lp
    )
    {
    int i,j;
             hwnd hwndGrid;
    RECT rc;
    CREATESTRUCT *pcs;
    SIZE size;
    switch (message)
    {
    case WM_CREATE:
    pcs=(CREATESTRUCT *)lp;
    if (!RegisterGridClass())
    return -1;
    hwndGrid=CreateWindow(SZ_GRIDWINDOWCLASS,
    NULL,
    WS_CHILD|WS_VISIBLE|WS_BORDER,
    0,0,0,0,
    hwnd,
    (HMENU)0,
    pcs->hInstance,
    NULL);
    size.cx=5;
    size.cy=5;
    SendMessage(hwndGrid,GM_SETROWCOLUMN,0,(LPARAM)&size);
    for (i=0;i<5;i++)
    {
    for (j=0;j<5;j++)
    {
    size.cx=j;
    size.cy=i;
    SendMessage(hwndGrid,GM_SETGRIDTEXT,(WPARAM)g_asz[i*5+j],(LPARAM)&size);
    }
    }
    case WM_SIZE:
    GetClientRect(hwnd,&rc);
    MoveWindow(hwndGrid,rc.left,rc.top,
    rc.right-rc.left,rc.bottom-rc.top,TRUE);
    return 0;
    case WM_DESTROY:
    PostQuitMessage(0);
    return 0;
    default:
    break;
    }
    return DefWindowProc(hwnd,message,wp,lp);
    }看出来错误了吗?,这是我曾经写过的一个程序,这个程序每当主窗口被最小化的时候出现上述的异常。以上是主窗口的窗口过程。