int RegisterWndClass( HINSTANCE hInstance )
{
WNDCLASSEX wndClsEx;
HICON hIcon = LoadIcon(NULL, MAKEINTRESOURCE(IDI_APPLICATION));
//HICON h=LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICONMAINWND));
HCURSOR hCursor = LoadCursor(NULL,  MAKEINTRESOURCE(IDC_ARROW));
    //attribute
wndClsEx.cbSize = sizeof( WNDCLASSEX );
wndClsEx.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC |      CS_BYTEALIGNCLIENT;
wndClsEx.lpfnWndProc = (WNDPROC)WndProc;
wndClsEx.cbClsExtra = 0;
wndClsEx.cbWndExtra = 0;
wndClsEx.hInstance = hInstance;
wndClsEx.hIcon = hIcon;//LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICONMAINWND));
wndClsEx.hCursor = hCursor;//(HCURSOR)LoadCursor(hInstance, (LPCTSTR)IDI_ARROW);
wndClsEx.hbrBackground = (HBRUSH)COLOR_WINDOW;
wndClsEx.lpszClassName = (LPCTSTR)szMainWndClass;
wndClsEx.lpszMenuName = NULL;
wndClsEx.hIconSm = hIcon; DWORD dwRet = 0;
dwRet =  RegisterClassEx( &wndClsEx );
    if ( dwRet == 0 )
{
return 0;
} return 1;
}
注册主窗口类失败了!
俘获的错误为“文件名、目录名或卷标名不正确!”,肯定不会与文件和目录有关,是不是卷标? 请大虾们替我看一下是不是设置属性时出的错误?

解决方案 »

  1.   

    HICON hIcon = LoadIcon(NULL, MAKEINTRESOURCE(IDI_APPLICATION));
    HCURSOR hCursor = LoadCursor(NULL,  MAKEINTRESOURCE(IDC_ARROW));改为--->HICON hIcon = LoadIcon(NULL, IDI_APPLICATION));
    HCURSOR hCursor = LoadCursor(NULL,  IDC_ARROW));
      

  2.   

    从代码上看,似乎没有错误。
    但是,是不是你还有一个别的程序在运行,而它恰好也注册了与szMainWndClass一样的窗口类?!试试把szMainWndClass改成一个怪名字。
    下面是我自己的成功程序的一段代码,你可自己比较比较
    wcm.cbSize=sizeof(wcm);
            wcm.style=CS_VREDRAW | CS_HREDRAW ;
    wcm.lpfnWndProc=(WNDPROC)Main_Proc;
            wcm.cbClsExtra=0;
            wcm.cbWndExtra=0;
            wcm.hInstance=hInstance;
            wcm.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));
    wcm.hIconSm=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));
            wcm.hCursor=LoadCursor(NULL,IDC_ARROW);
            wcm.hbrBackground=(HBRUSH)COLOR_WINDOW;//GetStockObject(LTGRAY_BRUSH);
            wcm.lpszMenuName=NULL;
            wcm.lpszClassName=szWndName;
    if(!RegisterClassEx(&wcm))
    {
    MessageBox(NULL,"初试化出错!","ERROR !",MB_OK);
    return FALSE;
    }
      

  3.   

    if ( dwRet == 0)
    {
     LPVOID lpMsgBuf;
     //char szTemp[10] = {0};
     //itoa((DWORD)GetLastError(), szTemp, 10);
             //MessageBox( NULL, szTemp, "Error", MB_OK | MB_ICONINFORMATION );         
     FormatMessage( 
                             FORMAT_MESSAGE_ALLOCATE_BUFFER | 
                             FORMAT_MESSAGE_FROM_SYSTEM | 
                             FORMAT_MESSAGE_IGNORE_INSERTS,
                             NULL,
                             GetLastError(),
                             MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
                             (LPTSTR) &lpMsgBuf,
                             0,
                             NULL 
                           );
            MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
            LocalFree( lpMsgBuf ); return FALSE;
    }
    这是我俘获错误的代码,关键是替我分析一下为什么,什么情况下会出现那样的错误?请大家能替我分析一下,明天我来看贴子。