“无法解析的外部符号_main...”

无论控制台应用程序还是windows应用程序都出错,在加了main()后就成功了.我想知道vs编辑c时程序里必须要main吗... 无论控制台应用程序还是windows应用程序都出错,在加了main()后就成功了.我想知道vs编辑c 时程序里必须要main吗 展开
 我来答
百度网友0e41609
推荐于2017-11-23 · TA获得超过108个赞
知道答主
回答量:9
采纳率:0%
帮助的人:12.2万
展开全部
_main不是真正的入口

控制台程序的默认入口是_mainCRTStartup, 它将调用_main
windows程序的默认入口是_WinMainCRTStartup, 它将调用_WinMain
这两个真正的入口都在C运行时库中,用来初始化C运行时库,调用全局对象的构造函数等

当然你可以更改默认的入口
在VS中配置属性->链接器->高级->入口点 中可设置入口点函数,也可用命令行选项/ENTRY指定入口点,来替换_mainCRTStartup。但是此时C运行时库没有初始化,调用一些CRT函数(如malloc)会出现问题

NT的驱动程序就是这样做的,它们的入口是DriverEntry

你若想详细了解CRT的初始化过程,可以参考CRT源代码:
vs安装目录\VC\crt\src\crt0.c
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式