代码没有问题,在editplus中设置后编译通过.
拷贝到VC中编译时,出现链接错误:
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Hello.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
以前好象遇见过,别人告诉我是VC里的设置有问题,我一点也不记得了,而且一直是用默认的,请教请教! 新手,分不多,见谅!

解决方案 »

  1.   

    干脆把代码帖上来!
    #include <windows.h>int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE h , PSTR szCmdLine, int iCmdShow)
    {
    MessageBox( NULL, TEXT(" Hello World !"), TEXT(" Hello "), 0 ); return 0;
    }
      

  2.   

    #include "stdafx.h"int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE h , PSTR szCmdLine, int iCmdShow)
    {
    MessageBox( NULL, TEXT(" Hello World !"), TEXT(" Hello "), 0 ); return 0;
    }
      

  3.   

    楼主试试下面的HelloWorld程序,对照一下,看问题出在哪?
    //HelloWorld.cpp
    //////////////////////////////////////////////////////////////////////
    #include <windows.h>//窗口函数声明
    LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);//以下代码初始化窗口类
    //////////////////////////////////////////////////////////////////////
    int WINAPI WinMain(HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPSTR     lpCmdLine,
                       int       nCmdShow)
    {
        //窗口类名
        static TCHAR szAppName[] = TEXT("HelloWorld");
        //窗口标题名
        static TCHAR lpszTitle[] = TEXT("MY First Windows Program");    HWND      hWnd;     //
        MSG       msg;      //
        WNDCLASS  WndClass; //
        
        //窗口类没有扩展
        WndClass.cbClsExtra = 0;
        //窗口类实例没有扩展
        WndClass.cbWndExtra = 0;
    //窗口背景为白色
        WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
        //窗口采用箭头光标
        WndClass.hCursor = LoadCursor(NULL,IDC_ARROW);
        //窗口的最小化图标为默认图标
        WndClass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
        //当前实例句柄
        WndClass.hInstance = hInstance;
        //窗口处理函数为WndProc
        WndClass.lpfnWndProc = WndProc;
        //窗口类名
        WndClass.lpszClassName = szAppName;
        //窗口没有菜单
        WndClass.lpszMenuName = NULL;
        //窗口类风格
        WndClass.style = CS_HREDRAW|CS_VREDRAW;
        
        //如果注册失败则发出警告声
        if(!RegisterClass(&WndClass))
        {
            MessageBox(NULL,
                       TEXT("This Program requires Windows 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,nCmdShow);
        //绘制用户区
        UpdateWindow(hWnd);
        //消息循环
        while(GetMessage(&msg,NULL,0,0))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        //消息循环结束(即程序终止)时将信息返回系统
        return msg.wParam;
    }//窗口函数定义
    //////////////////////////////////////////////////////////////////////
    LRESULT CALLBACK WndProc(HWND   hWnd,
                             UINT   message,
                             WPARAM wParam,
                             LPARAM lParam)
    {
        HDC         hDC;
        PAINTSTRUCT ps;
        RECT        rect;
        //消息处理语句
        switch (message)
        {
        case WM_CREATE:
            
    //PlaySound(TEXT("helloworld.wav"),
            //          NULL,
            //          SND_FILENAME|SND_ASYNC);
            return 0 ;
        //当客户区的一部分或全部变为无效以致必须刷新时,将由这个消息通知程序
        case WM_PAINT:
            hDC = BeginPaint(hWnd,&ps);
            GetClientRect(hWnd,&rect);
            DrawText(hDC,
                     TEXT("Hello World!"),
                     -1,
                     &rect,
                     DT_SINGLELINE|DT_CENTER|DT_VCENTER);
            EndPaint(hWnd,&ps);
            return 0;
        //退出窗口
        case WM_DESTROY:
            //调用PostQuitMessage函数发出WM_QUIT消息
            PostQuitMessage(0); 
            return 0;
        }
        return DefWindowProc(hWnd,message,wParam,lParam);
    }
      

  4.   

    你让VC生成一个"HELLO WORLD",然后把你的代码拷贝到相同名字源文件,应该没问题了.
      

  5.   

    #include <windows.h>int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE h , LPSTR szCmdLine, int iCmdShow)
    {
    MessageBox( NULL, TEXT(" Hello World !"), TEXT(" Hello "), 0 ); return 0;
    }
      

  6.   

    project settings->link->options中的/subsystem:console改成/subsystem:windows
      

  7.   

    ruihuahan(飞不起来的笨鸟)
    谢谢
    哦,我要是不直接帖代码过来, 而是新建一个win32 application的工程,就会没问题了,否则它会生成一个console的工程,是这个原因吧