2015-10-08 60 views
-1

我已经能够罚款WinMain函数。现在,我想做一个win32应用:编译器错误C2664或C2731 C++ 2015

#include <Windows.h> 
int WINAPI WinMain() { 
    MessageBox(NULL,"Test", "Hello World", NULL); 
    return 0; 
} 

,然后我得到错误C2731

+1

什么是错误信息? – Hcorg

+1

请编辑您的问题,以包括实际的错误,完整和未经编辑。 –

回答

0

您尚未向WinMain()方法提供任何参数,并且错误C2731说这种方法cannot be overloaded

MSDN

int WINAPI WinMain(HINSTANCE hInstance, 
       HINSTANCE hPrevInstance, 
       LPSTR lpCmdLine, 
       int nCmdShow); 

错误C2664是最有可能您的来电MessageBox的,所以尝试更改为类似:

MessageBox(NULL, L"Test", L"Hello World", NULL); 
0

我想通了,我不useint的main.cpp作为我的主要源代码文件,我的WinMain需要切换到wWinMain

+0

这没有任何意义。没有这样的东西作为主要的源代码文件。所有源文件都被编译为目标代码,并且链接程序将目标代码组装成可执行映像。 [Michael McMullin的回答](http://stackoverflow.com/a/33011984/1889329)概述了真正的问题。 – IInspectable