大家帮忙看一下,这个函数什么地方有问题: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)

解决方案 »

  1.   

    MFC自己定义过一个WinMain函数,在创建了全局对象之后由运行时动态链接库自动调用,调用的是_tWinMain, 但是书上说_t是为了支持Unicode而定义的映射宏.我刚开始看,也不太明白,不知道跟楼主说的有没有关系.我看的是姚领田的 精通MFC程序设计.
      

  2.   

    感谢nofoot(没理想) ,你说的是MFC下编成,我说的是在SDK下,自己编写的WinMain函数.
      

  3.   

    LPWSTR lpCmdLine
    改成
    LPSTR lpCmdLine
      

  4.   

    yjgx007(听妈妈的话)已给出了正解--
    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;
      

  5.   

    performance1024 我像 你说的那样改了,但是又出现下面的错误:--------------------Configuration: Eg141 - Win32 Debug--------------------
    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)为什么啊??
      

  6.   

    project > settings > link
    在链接选项中确认
    /subsystem:windows
    而不是
    /subsystem:console
      

  7.   

    应该是你的工程建立时发生错误了! error LNK2001: unresolved external symbol _main
      

  8.   

    yjgx007(听妈妈的话)   谢谢你,问题已经解决拉,我在建立工程的时候,建立的是WIN32应用台控制程序,我又重新建立一个WIN32的应用程序,就可以了,但是为什么会这样呢?