求助, 一段VC++代码, 仿照孙鑫那个视频写的, 为什么出错呢?帮忙找找 ,谢谢
错误信息:
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/C.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
C.exe - 1 error(s), 0 warning(s)
代码:
#include <windows.h>
#include <stdio.h>
LRESULT CALLBACK WinLzgProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
//设计窗口类
WNDCLASS w;
w.cbClsExtra = 0;
w.cbWndExtra = 0;
w.hbrBackground = (HBRUSH)(GetStockObject(BLACK_BRUSH));
w.hCursor = LoadCursor(NULL,IDC_CROSS);
w.hIcon = LoadIcon(NULL,IDI_ERROR);
w.hInstance = hInstance;
w.lpfnWndProc = WinLzgProc;
w.lpszClassName = "LG";
w.lpszMenuName = NULL;
w.style = CS_HREDRAW|CS_VREDRAW;
RegisterClass(&w);//注册
//创建窗口
HWND hwnd;
hwnd = CreateWindow("LG","Window",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 WinLzgProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_CHAR:
char c[40];
sprintf(c,"按下的键的ASC2码是: %d",wParam);
MessageBox(hwnd,c,"消息",0);
break;
case WM_PAINT:
HDC hDc;
PAINTSTRUCT ps;
hDc = BeginPaint(hwnd,&ps);
TextOut(hDc,0,0,"HELLO WORLD!",strlen("HELLO WORLD!"));
EndPaint(hwnd,&ps);
break;
case WM_LBUTTONDOWN:
HDC hdc;
hdc = GetDC(hwnd);
TextOut(hdc,0,50,"Visual C++ 6.0",strlen("Visual C++ 6.0"));
ReleaseDC(hwnd,hdc);
break;
case WM_CLOSE:
if(IDYES == MessageBox(hwnd,"真的要关闭!","消息",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}
答案:就像楼下说的,你得创建win32窗体工程,而不是win32命令行工程。命令行是与传统C/C++兼容的,应用的入口点为main(如果你深入了解的话,会看到在CRT在外面又包了一层,新手可以忽略不管),而win32窗口应用入口点为WinMain函数。WinMain函数在命令行(cmd)里调用是立即返回的,这个与main不一样。在创建win32命令行工程时,有时看到入口函数(也就是主函数)被命名为_tmain,这个是一样的道理。你只需要知道,操作系统在调用你的程序的时候,它会调用你的main/_tmain/WinMain函数就行了
其他:创建win32工程
上一个:MFC中这个菜单选中是怎么做到的
下一个:深入浅出MFC和MFC深入浅出是同一本书吗?