vs2013,error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用

在visual studio2013创建一个空项目的时候,选择的是Win32项目

在后面Ctrl+F5时,vs报错

可以通过如下方式解决:

再Ctrl+F5,程序运行成功

看其他帖子对其的描述:

一,问题描述
MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用 
Debug\jk.exe : fatal error LNK1120: 1 个无法解析的外部命令

error LNK2001: unresolved external symbol _WinMain@16
debug/main.exe:fatal error LNK 1120:1 unresolved externals 
error executing link.exe;

二,原因及解决办法
产生这个问题的真正原因是c语言运行时找不到适当的程序入口函数,

一般情况下,如果是windows程序,那么WinMain是入口函数,在VS2008中新建项目为“win32项目”

如果是dos控制台程序,那么main是入口函数,在VS2008中新建项目为“win32控制台应用程序”

而如果入口函数指定不当,很显然c语言运行时找不到配合函数,它就会报告错误。

修改设置适应你的需求

如果是windows程序:


1.菜单中选择 Project->Properties, 弹出Property Pages窗口

2.在左边栏中依次选择:Configuration Properties->C/C++->Preprocessor,然后在右边栏的Preprocessor Definitions对应的项中删除_CONSOLE, 添加_WINDOWS.

3.在左边栏中依次选择:Configuration Properties->Linker->System,然后在右边栏的SubSystem对应的项改为Windows(/SUBSYSTEM:WINDOWS)


如果是控制台程序:


1.菜单中选择 Project->Properties, 弹出Property Pages窗口

2.在左边栏中依次选择:Configuration Properties->C/C++->Preprocessor,然后在右边栏的Preprocessor Definitions对应的项中删除_WINDOWS, 添加_CONSOLE.

3.在左边栏中依次选择:Configuration Properties->Linker->System,然后在右边栏的SubSystem对应的项改为CONSOLE(/SUBSYSTEM:CONSOLE)

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误是因为编译器找不到名为_winmain@16函数。这个函数Windows程序的入口点,它负责初始化程序并调用主函数。可能是因为你的程序没有定义这个函数,或者定义了但是没有正确链接到程序。你可以检查一下你的代码,看看是否有定义这个函数,并且检查一下编译选项是否正确设置。 ### 回答2: 在使用C++编程的过程,我们可能会遇到error LNK2019错误,这个错误通常可能涉及到程序的入口函数——winmain或者main函数。这个错误提示就是说编译器无法找到符号_winmain@16,而且该符号在___tmaincrtstartup函数引用。 要解决这个问题,我们需要先了解上述符号的含义和作用。_winmain@16Windows应用程序的入口函数符号。它是Windows编程模型的一部分,作为WinMain函数的实现部分。当我们创建一个Windows应用程序时,编译器就会默认在WinMain函数自动生成这个符号。 当我们在C++编写Windows应用程序时,可能会因为一些疏忽或者编译器设置不正确而导致编译器无法找到这个符号。这时候编译器会报告error LNK2019错误。解决这个错误的方法是检查我们的代码,特别是我们的mainWinMain函数是否正确地添加了_ui64toa_s等Windows API函数头文件,或者确认使用正确的编译器选项。 总之,error LNK2019错误是一个常见的问题,但只要我们理解了其的原因和解决方法,就能够轻松地排除这个问题。 ### 回答3: 这个错误是Microsoft Visual Studio编译器的提示错误信息,通常出现在C或C++程序,它表明在编译时编译器无法解析外部符号 _winmain@16,这个符号最初被调用于主函数,而在链接时发生了错误。 在Windows应用程序,_winmain@16作为入口点函数扮演着非常重要的角色,它是Windows API的一部分,是在Windows环境下编写应用程序的必不可少的函数之一。如果程序没有定义_winmain@16函数,或者_main函数没有正确的参数,就会出现无法解析外部符号的错误。 通常,这个错误出现在在Visual Studio创建控制台应用程序,而开头的Windows界面函数被写成了main函数,由于编译器的要求,这个函数需要被调整为_winmain@16。 解决这个错误需要修改程序源代码,在程序添加或者改变入口函数的形式,将主函数改为_winmain@16,并且调整参数类型和返回值类型。 如果您是使用Visual Studio编译器,可以通过以下步骤解决这个错误:在项目的“属性”对话框,选择“配置属性”->“链接器”->“高级”, 将“入口点”字段的“main”改为“WinMain”,并将“字符集”选项设置为“Unicode”。 总之,如果您遇到了错误lnk2019: 无法解析外部符号_winmain@16,首先需要检查您的代码是否存在不符合编译器要求的地方。如果遇到问题,可以通过修改函数定义、调整参数类型、或者调整编译器配置等方式解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值