我用的是VC++6.0
新建一个C++ Source File
里面的代码://当用鼠标左键单击程序窗口的用户区时,计算机的扬声器会发出“叮”的声音#include <windows.h>LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance,
   HINSTANCE PreInstance,
   LPSTR lpCmdLine,
   int nCmdShow)
{
HWND hwnd;                                           //定义窗口句柄
MSG msg;                                            //定义一个用来存储消息的变量
char lpszClassName[]="窗口";
WNDCLASS wc;                                           //定义一个窗口类变量
wc.style=0;
wc.lpfnWndProc=WndProc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName=NULL;
wc.lpszClassName=lpszClassName; RegisterClass(&wc);                  //注册窗口类 hwnd=CreateWindow(lpszClassName,          //创建窗口
"Windows",
WS_OVERLAPPEDWINDOW,
120,50,800,600,
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)
{
switch(message)
{
case WM_LBUTTONDOWN:           //鼠标左键按下消息
{
MessageBeep(0);       //发出声音的API函数
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}编译链接出错:
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Cpp1.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.哪位高人指教一下,谢谢

解决方案 »

  1.   

    首先,你要新建一个项目/Project,选择项目类型为Win32 Application,如果不选择弹出来的向导中的空项目选项,那么向导为你生成一个cpp文件和WinMain函数体;如果选择了空项目选项,才可以像你这样自己添加一个WinMain函数体;如果没有用向导或者选择了项目类型为Win32 Console,就是默认控制台程序,入口函数为main。你显然是最后一种,要么修改项目选项中的设置,修改项目类型为Windows;建议从头开始建一个Win32 Application项目更好。
      

  2.   

    入口函数不对,默认 console 程序的入口为 main改 link 选项 /subsystem:console 为 /subsystem:windows编译时就会找入口函数 WinMain
      

  3.   

    对,3楼正解.编译通过,说明程序本身没有什么问题,而连接提示external symbol _main,直接指出入口函数是main而不是winmain.
    vc++6.0的使用,环境非常重要.也就是说,你创建的源码类型非常重要.