unresolved external symbol _main referenced in function ___tmainCRTStartup,在vcbuilt时,出现此错误,可能是由于更改正常函数的main名称导致链接错误。
可以Project->properties->linker->system->subsystem 里面的设置是console,
但是非标准的main则应该该成相应的,比如windows,wince等等
一般的先尝试windows,全名是:Windows (/SUBSYSTEM:WINDOWS)
Windows应用程序必须拥有一个在应用程序启动运行时调用的进入点函数。可以使用的进入点函数有4个:
int WINAPI WinMain
(HINSTANCE hinstExe,
HINSTANCE,
PSTR pszCmdLine,
int nCmdeShow)
int WINAPI wWinMain
(HINSTANCE hinstExe,
HINSTANCE,
PWSTR pszCmdLine,
int nCmdShow)
int __cdecl main
(int argc,
char* argv[],
char* envp[]
)
int __cdecl wmain
( int argc,
wchar_t* argv[],
wchar_t* envp[]
)
Windows C++编程常犯错误之一,当创建新的应用程序时, 不小心或者编辑器默认执行不对应的应用程序类型。例如,编程员可能创建一个新的Win32应用程序项目,但是创建了一个进入点函数main。当创建应用程序时,我们会看到一个连接程序错误消息,因为win32应用程序项目设置了/ SUBSYSTEM:WINDOWS链接程序开关,但是不存在WinMain或者wWinMain函数。这时,我们可以有四个选择实现通过:
一 、将main函数改为WinMain。通常这不是最佳的选择,因为我们可能想要创建一个控制台应用程序。
二、用Visual C++创建一个新的Win32控制台应用程序,并将现有的源代码添加给新的应用程序项目。这个选择冗长而乏味,因为它就好像是从头开始创建应用程序,而且必须删除原有的应用程序文件。
三、单击Project Settings对话框的Link选项卡,将/SUNSYSTEM:WINDOWS开关改为/SUBSYSTEM:CONSOLE。这是解决问题的一种比较容易的方法。
四、单击Project Settings对话框的Link选项卡,然后全部删除掉/SUBSYSTEM:WINDOWS开关。这样它就能提供最大的灵活性,连接程序将根据源代码中实现的函数进行正确的操作。