程序代码没问题,编译时出现如下提示:--------------------Configuration: winmain - Win32 Debug--------------------
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)我是新手,这该如何解决呀,小弟这里谢谢了!

解决方案 »

  1.   

    是不是工程类型错了,它说少了main这个函数,这个文件应该是控制台程序的主函数,你是不是建了一具windows Application型的工程了,这个工程的默认入口函数是WinMain
      

  2.   

    上面说反了,它要求一个main,你应该是建了一个Win32 Console Applicate,但是你的程序却不是的,总之少了main()函数
      

  3.   

    程序是照着教程一步一步做的..建立的是win32 Application型的工程!代码没有问题.觉得1楼说的有道理,但是我确实不知道是哪个库没有加进去...拜托能说的详细点吗?源代码在这里:#include <windows.h>                           
    #include <stdio.h>                             LRESULT CALLBACK WinSunProc(
      HWND hwnd,
      UINT uMSG,
      WPARAM wParam,
      LPARAM lparam
      );int WINAPI WinMain(                            
     HINSTANCE hInstance, 
     HINSTANCE hPrevInstance, 
     LPSTR lpCmdLine, 
     int nCmdShow
    )
    {                                              
    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="test";                
    wndcls.style=CS_HREDRAW | CS_VREDRAW;       
    RegisterClass(&wndcls);                      HWND hwnd;                                  
    hwnd=CreateWindow("test","第一个窗口程序",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,
      UINT uMsg,
      WPARAM wParam,
      LPARAM lparam
      )
    {
    switch(uMsg)
    {
    case WM_CHAR:
    char szChar[20];
    sprintf(szChar,"char is %d",wParam);
    MessageBox(hwnd,szChar,"test",0);
    break;
    case WM_LBUTTONDOWN:
    MessageBox(hwnd,"mouse clicked","test",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,"是否真的结束?","test",MB_YESNO))
    {
    DestroyWindow(hwnd);
    }
    break;
    case WM_DESTROY:
    PostQuitMessage(0);
    break;
    default:
    return DefWindowProc(hwnd,uMsg,wParam,lparam);
    }
    return 0;
    }
      

  4.   

    发现问题了:在注册窗口类时少了一项: wndcls.lpszMenuName=NULL;而且、你的wndcls没有初始化,如果初始化就没有问题。
      

  5.   

    谢谢楼上,wndcls.lpszMenuName=NULL; 加上了.类的初始化...我确实实在不懂..教程上也没说用初始化...我新学的.一团糟...
      

  6.   

    始终提示:
    --------------------Configuration: winmain - Win32 Debug--------------------
    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)
      

  7.   

    Win32 Console Applicate就是上述错误
    建个windows Application就能编译通过
    不过运行好像有问题
      

  8.   

    问题得以解决..网上搜索了大半天,终于找到问题所在...
    Linking...
    LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
    Debug/winmain.exe : fatal error LNK1120: 1 unresolved externals
    Error executing link.exe.经典的LNK2001错误..提示:unresolved external symbol _main 时.
    Windows项目要使用Windows子系统, 而不是Console, 可以这样设置: 
    [Project] --> [Settings] --> 选择"Link"属性页,在Project Options中将/subsystem:console改成/subsystem:windows这样更改后,编译执行,顺利成功..谢谢大家的帮助~~