大家帮忙看一下,这个函数什么地方有问题:int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPWSTR lpCmdLine,
int nShowCmd
)
{
static TCHAR szApplicationName[] =TEXT("Eg141");
HWND hWnd;
WNDCLASS wnd;
MSG msg; wnd.cbClsExtra = 0;
wnd.cbWndExtra = 0;
wnd.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wnd.hCursor = LoadCursor(NULL,IDC_ARROW);
wnd.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wnd.hInstance = hInstance;
wnd.lpfnWndProc = WndProc;
wnd.lpszClassName = szApplicationName;
wnd.lpszMenuName = NULL;
wnd.style = CS_HREDRAW | CS_VREDRAW;
if (!RegisterClass(&wnd))
{
MessageBox(NULL,TEXT("No Success For RegisterClass"),szApplicationName,MB_ICONERROR);
return FALSE;
} hWnd = CreateWindow(szApplicationName,szApplicationName,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
ShowWindow(hWnd,nShowCmd);
UpdateWindow(hWnd); while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return msg.wParam;
}错误提示为:
--------------------Configuration: Eg141 - Win32 Debug--------------------
Compiling...
Eg141.cpp
E:\MyProject\Eg141\Eg141.cpp(16) : error C2731: 'WinMain' : function cannot be overloaded
E:\MyProject\Eg141\Eg141.cpp(10) : see declaration of 'WinMain'
Error executing cl.exe.Eg141.exe - 1 error(s), 0 warning(s)
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPWSTR lpCmdLine,
int nShowCmd
)
{
static TCHAR szApplicationName[] =TEXT("Eg141");
HWND hWnd;
WNDCLASS wnd;
MSG msg; wnd.cbClsExtra = 0;
wnd.cbWndExtra = 0;
wnd.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wnd.hCursor = LoadCursor(NULL,IDC_ARROW);
wnd.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wnd.hInstance = hInstance;
wnd.lpfnWndProc = WndProc;
wnd.lpszClassName = szApplicationName;
wnd.lpszMenuName = NULL;
wnd.style = CS_HREDRAW | CS_VREDRAW;
if (!RegisterClass(&wnd))
{
MessageBox(NULL,TEXT("No Success For RegisterClass"),szApplicationName,MB_ICONERROR);
return FALSE;
} hWnd = CreateWindow(szApplicationName,szApplicationName,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
ShowWindow(hWnd,nShowCmd);
UpdateWindow(hWnd); while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return msg.wParam;
}错误提示为:
--------------------Configuration: Eg141 - Win32 Debug--------------------
Compiling...
Eg141.cpp
E:\MyProject\Eg141\Eg141.cpp(16) : error C2731: 'WinMain' : function cannot be overloaded
E:\MyProject\Eg141\Eg141.cpp(10) : see declaration of 'WinMain'
Error executing cl.exe.Eg141.exe - 1 error(s), 0 warning(s)
改成
LPSTR lpCmdLine
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPWSTR lpCmdLine, // 此处LPWSTR->LPSTR!
int nShowCmd
)
具体差异:
An LPWSTR if UNICODE is defined, an LPSTR otherwise.
This type is declared in Winnt.h as follows:#ifdef UNICODE
typedef LPWSTR LPTSTR;
#else
typedef LPSTR LPTSTR;
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Eg141.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.Eg141.exe - 2 error(s), 0 warning(s)为什么啊??
在链接选项中确认
/subsystem:windows
而不是
/subsystem:console