cjg 发表于 2008-9-5 20:54

求助,写一个基本的窗口设计程序,运行报这种错误,请问是怎么回事??

代码:
#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK WinSunProc(
  HWND hwnd,      // handle to window
  UINT uMsg,      // message identifier
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
);

int WINAPI WinMain(
  HINSTANCE hInstance,      // handle to current instance
  HINSTANCE hPrevInstance,  // handle to previous instance
  LPSTR lpCmdLine,          // command line
  int nCmdShow              // show state
)
{
        WNDCLASS wndcls;
        wndcls.cbClsExtra=0;
        wndcls.cbWndExtra=0;
        wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
        wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
        wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
        wndcls.hInstance=hInstance;
        wndcls.lpfnWndProc=WinSunProc;
        wndcls.lpszClassName="xin2003";
        wndcls.lpszMenuName=NULL;
        wndcls.style=CS_HREDRAW | CS_VREDRAW;
        RegisterClass(&wndcls);

        HWND hwnd;
        hwnd=CreateWindow("xin2003","科学技术培训中心",WS_OVERLAPPEDWINDOW,
                0,0,600,400,NULL,NULL,hInstance,NULL);

        ShowWindow(hwnd,SW_SHOWNORMAL);
        UpdateWindow(hwnd);

        MSG msg;
        while(GetMessage(&msg,NULL,0,0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
        return 0;
}

LRESULT CALLBACK WinSunProc(
  HWND hwnd,      // handle to window
  UINT uMsg,      // message identifier
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
)
{
        switch(uMsg)
        {
        case WM_CHAR:
                char szChar[20];
                sprintf(szChar,"char is %d",wParam);
                MessageBox(hwnd,szChar,"weixin",0);
                break;
        case WM_LBUTTONDOWN:
                MessageBox(hwnd,"mouse clicked","weixin",0);
                HDC hdc;
                hdc=GetDC(hwnd);
                TextOut(hdc,0,50,"计算机编程语言培训",strlen("计算机编程语言培训"));
                ReleaseDC(hwnd,hdc);
                break;
        case WM_PAINT:
                HDC hDC;
                PAINTSTRUCT ps;
                hDC=BeginPaint(hwnd,&ps);
                TextOut(hDC,0,0,"培训",strlen("培训"));
                EndPaint(hwnd,&ps);
                break;
        case WM_CLOSE:
                if(IDYES==MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO))
                {
                        DestroyWindow(hwnd);
                }
                break;
        case WM_DESTROY:
                PostQuitMessage(0);
                break;
        default:
                return DefWindowProc(hwnd,uMsg,wParam,lParam);
        }
        return 0;
}
报错:
Compiling...
WinMain.cpp
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/WinMain.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

WinMain.exe - 2 error(s), 0 warning(s)
谢谢各位了,等待中

tiancaiak 发表于 2008-9-7 18:02

LZ建的是win32工程,WinMain应该是 Window Application工程

工程建错了

LZ建的是win32工程(入口函数是main),应该是 Window Application工程(入口函数是WinMain)

页: [1]

编程论坛