这里面哪有错#include<windows.h>
#include<winuser.h> 
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
   PSTR szCmdLine,int iCmdShow)
{
static TCHAR szAppName[]=TEXT("GENIUS");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style                =CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra           =0;
wndclass.cbWndExtra           =0;
wndclass.hInstance            =hInstance;;
wndclass.hIcon                =LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor              =LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground        =(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName          =NULL;
wndclass.lpszClassName        =szAppName;
if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("This program requires Window NT!"),
szAppName,MB_ICONERROR);
return 0;
}
hwnd=CreateWindow(szAppName,
TEXT("The hello program"),
        WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
    hInstance,
NULL);
ShowWindow(hwnd,iCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.lParam ;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC               hdc;
PAINTSTRUCT ps;
RECT        rect;
switch(message)
{
case WM_PAINT:
         hdc=BeginPaint(hwnd,&ps);
 GetClientRect(hwnd,&rect);
 DrawText(hdc,TEXT("Hello,window XP"),-1,&rect,
 DT_SINGLELINE|DT_CENTER|DT_VCENTER);
 EndPaint(hwnd,&ps);
 return 0;
case WM_DESTROY:
PostQiutMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}

解决方案 »

  1.   

    看看哪里有错.
    indows_creatwin\1.cpp(11) : error C2065: 'WndProc' : undeclared identifier
     windows_creatwin\1.cpp(11) : error C2440: '=' : cannot convert from 'int' to 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)'
            Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
     \windows_creatwin\1.cpp(47) : error C2373: 'WndProc' : redefinition; different type modifiers
     \windows_creatwin\1.cpp(61) : error C2065: 'PostQiutMessage' : undeclared identifier
    执行 cl.exe 时出错.
    输出这个我不会改
      

  2.   

    把WndProc函数放到WinMain函数之前。
    PostQiutMessage该成PostQuitMessage。
      

  3.   

    怎么把WndProc函数放到WinMain函数之前?什么意思?为什么?
      

  4.   

    先定义WndProc,后定义WinMain。
      

  5.   

    #include<windows.h>
    #include<winuser.h> LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
    {
        HDC               hdc;
        PAINTSTRUCT ps;
        RECT        rect;
        switch(message)
        {
        case WM_PAINT:
             hdc=BeginPaint(hwnd,&ps);
             GetClientRect(hwnd,&rect);
             DrawText(hdc,TEXT("Hello,window XP"),-1,&rect,
                 DT_SINGLELINE|DT_CENTER|DT_VCENTER);
             EndPaint(hwnd,&ps);
             return 0;
        case WM_DESTROY:
            PostQiutMessage(0);
            return 0;
        }
        return DefWindowProc(hwnd,message,wParam,lParam);
    }int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
                       PSTR szCmdLine,int iCmdShow)
    {
        static TCHAR szAppName[]=TEXT("GENIUS");
        HWND hwnd;
        MSG msg;
        WNDCLASS wndclass;
        wndclass.style                =CS_HREDRAW|CS_VREDRAW;
        wndclass.lpfnWndProc = WndProc;
        wndclass.cbClsExtra           =0;
        wndclass.cbWndExtra           =0;
        wndclass.hInstance            =hInstance;;
        wndclass.hIcon                =LoadIcon(NULL,IDI_APPLICATION);
        wndclass.hCursor              =LoadCursor(NULL,IDC_ARROW);
        wndclass.hbrBackground        =(HBRUSH)GetStockObject(WHITE_BRUSH);
        wndclass.lpszMenuName          =NULL;
        wndclass.lpszClassName        =szAppName;
        if(!RegisterClass(&wndclass))
        {
            MessageBox(NULL,TEXT("This program requires Window NT!"),
                szAppName,MB_ICONERROR);
            return 0;
        }
        hwnd=CreateWindow(szAppName,
            TEXT("The hello program"),
            WS_OVERLAPPEDWINDOW,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            NULL,
        NULL,
        hInstance,
        NULL);
        ShowWindow(hwnd,iCmdShow);
        UpdateWindow(hwnd);
        while(GetMessage(&msg,NULL,0,0))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        return msg.lParam ;
    }