VS2005编译问题。
我直接建立了一个空的工程,然后添加了一个CPP源文件。编译,然后编译提示出错如下:
//////////////////////////////////////////////////////////////////////////////////////////
ex.cpp
e:\vs2005 proj\win32 programing\ex\ex\ex.cpp(11) : error C2731: “WinMain”: 无法重载函数
e:\vs2005 proj\win32 programing\ex\ex\ex.cpp(10) : 参见“WinMain”的声明
//////////////////////////////////////////////////////////////////////////////////////////
上面就是编译出错信息。下面是我的代码:就是一个简单的Win32测试程序代码:
#include <Windows.h>
LPCTSTR lpszAppName = TEXT("MyApp");
LPCTSTR lpszTitle = TEXT("My Application");
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow)
{
MSG msg;
HWND hWnd;
WNDCLASS wc;
wc.style = CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW +1);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wc.hInstance = hInstance;
wc.lpszClassName = lpszAppName;
wc.lpszMenuName = lpszAppName;
if (!RegisterClass(&wc))
{
return FALSE;
}
hWnd = CreateWindow(lpszAppName,lpszTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);
if (!hWnd)
{
return FALSE;
}
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return(msg.wParam);
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg,WPARAM wParam,LPARAM lParam)
{
RECT rect;
HDC hdc;
PAINTSTRUCT ps;
static int uRed = 0, uGreen = 0, uBlue = 0;
switch(uMsg)
{
case WM_PAINT:
hdc = BeginPaint(hWnd,&ps);
GetClientRect(hWnd,&rect);
SetTextColor(hdc,RGB(uRed,uGreen,uBlue));
DrawText(hdc,TEXT("Hello, You Are Welcoming !"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hWnd,&ps);
break;
case WM_KEYDOWN:
uRed = rand() % 255;
uGreen = rand() % 255;
uBlue = rand() %255;
InvalidateRect(hWnd,&rect,TRUE);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
return (0L);
}
//////////////////////////////////////////////////////////////////////
但是以上的代码用VC++6.0建立空工程后,是可以编译通过的。哪位大侠帮忙看下是什么原因。谢谢了。