错误是
--------------------Configuration: Simwin - Win32 Debug--------------------
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Simwin.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.我写的源码为
////////  Simpwin.h ///////////////
LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM);
BOOL InitApplication(HINSTANCE);
BOOL InitInstance(HINSTANCE,int);
char *hello="HELLO WORLD";
/////////////////////////////////////////////Simpwin.cpp  /////////////#include<windows.h>
#include"Simpwin.h"
#include<string.h>HINSTANCE hInst;
HWND      hWndMain;int APIENTRY WinMain(HINSTANCE hInstance,
 HINSTANCE hPrevInstance,
 LPSTR     lpCmdLine,
 int    nCmdShow)
{
MSG msg; if(!InitApplication(hInstance))
return (FALSE); if(!InitInstance(hInstance,nCmdShow))
return (FALSE); while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (msg.wParam);
}
BOOL InitApplication(HINSTANCE hInstance)
{
WNDCLASS wcSimpwin; wcSimpwin.style=CS_HREDRAW | CS_VREDRAW;
wcSimpwin.lpfnWndProc  =(WNDPROC) MainWndProc;
wcSimpwin.cbClsExtra   =0;
wcSimpwin.cbWndExtra   =0;
wcSimpwin.hInstance    =hInstance;
wcSimpwin.hIcon        =LoadCursor(NULL,IDI_APPLICATION);
wcSimpwin.hCursor    =LoadCursor(NULL,IDC_ARROW);
wcSimpwin.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wcSimpwin.lpszMenuName =NULL;
wcSimpwin.lpszClassName="SimpwinWClass"; return (RegisterClass(&wcSimpwin));
}BOOL InitInstance(HINSTANCE hInstance,
  int       nCmdShow)
{
hInst=hInstance; hWndMain=CreateWindow(
"SimpwinWClass",
"&Icirc;&Ograve;&micro;&Auml;&acute;°&iquest;&Uacute;",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,
NULL,NULL,hInstance,NULL); if(!hWndMain)
return (FALSE); ShowWindow(hWndMain,nCmdShow);
UpdateWindow(hWndMain); return (TRUE);
}LRESULT CALLBACK MainWndProc(HWND hWnd,
 UINT message,
 WPARAM wParam,
 LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps; switch (message)
{
case WM_PAINT:
hdc=BeginPaint(hWnd,&ps);
TextOut(hdc,20,10,hello,lstrlen(hello));
EndPaint(hWnd,&ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return(DefWindowProc(hWnd,message,wParam,lParam));
}
return (0);
}
/////////////////////////////////////

解决方案 »

  1.   

    用向导呀(File-New),许多的代码不需要自己写,并且自己写容易出错!!
      

  2.   

    看看《深入浅出MFC》的第一章,好像应该处理一下WINMAIN的参数。
      

  3.   

    在project->settings->link
    最下边的编辑框中去掉/subsystem:console
      

  4.   

    [Project]->[Settings]->[C/C++]->[Project options]change "_CONSOLE" to "_WINDOWS"
      

  5.   

    另,建立工程的时候请选择,win32 application项
      

  6.   

    同意Cline(营营) ( ) 建议用学一学命令行编译程序,了解一下幕后的详情
      

  7.   

    你选的是win32 console方式开的project
    既然你要做windows,就应该选win32 application
    呵呵
    慢慢来
    大家都是这样过来的----------------------------
                  May you succeed!
                           ------------------
      

  8.   

    该错误的意思是:找不到main函数。
    任何一个程序都存在一个主函数。windows的主函数是WinMain。当你使用某些编译器如VC时,默认的应用程序状态是控制台程序。而控制台程序的主程序是main函数。而你现在要创建一个windows程序,这就是出现上述错误的原因。
    改正的方法是:
    在编译器环境中进行应用程序的设置。涉及到控制台和windows程序之间转换的设置主要在工程-设置-的c/c++标签和link标签中。打开c/c++标签,选中general选项,在C++预处理程序定义中,将原来的_CONSOLE改称_WINDOWS关键字。
    打开link标签,选择general选项,在最下面的编辑框中即阿工程属性中找到/subsystem:console,将console改成windows。
    存储工程,编译此时已经没有错误了。
    上述调试过程我是在vc6.0中文版上测试通过的。再vc7.0或其他版本中应该道理是一样的。