被一个问题困扰~~~

njzjz927 2009-07-02 11:14:17
c++编程,为什么在DOS平台下入口函数是main,而windows编程入口函数却是WinMain??
不是说标准c++是独立于平台的么?那么main和WinMain哪个是属于标准c++??
还有,如果都不属于标准c++,那么编译器为什么会认得他们(不报错)?还是说每一种平台下的编译器都已经默认一种主函数了~~
问题或许白痴,不过我的概念有点混乱,麻烦各位大侠们了~~谢谢
...全文
14 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2009-07-03
  • 打赏
  • 举报
回复
WinMain没有封装。
对于编译器来说,指定任意一个函数作为入口函数不是个难事。
风老二 2009-07-03
  • 打赏
  • 举报
回复
入口是可以自定义的,默认的是main
vcchen_bo_qiang 2009-07-03
  • 打赏
  • 举报
回复
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrveInstance,PSTR szCmdLine,int iCmdShow)
{
return 0;
}

在VC++的编译环境中不支持!
tianya0609 2009-07-03
  • 打赏
  • 举报
回复
应该是封装过了
njzjz927 2009-07-03
  • 打赏
  • 举报
回复
封装的?怎么查啊?那这么说main是属于标准C++的了,而WinMain不是喽?
WOBUGUAN 2009-07-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 njzjz927 的帖子:]
c++编程,为什么在DOS平台下入口函数是main,而windows编程入口函数却是WinMain??
不是说标准c++是独立于平台的么?那么main和WinMain哪个是属于标准c++??
还有,如果都不属于标准c++,那么编译器为什么会认得他们(不报错)?还是说每一种平台下的编译器都已经默认一种主函数了~~
问题或许白痴,不过我的概念有点混乱,麻烦各位大侠们了~~谢谢
[/Quote]

标准c++是独立于平台的。
main是属于标准C++的。
WinMain不属于标准C++,而是VC的扩展。有些Windows下的编译器不支持WinMain的。
  • 打赏
  • 举报
回复
是操作系统支持编译。不同的系统下面不同的编译器。
VC可能可以选择编译成控制台还是windows标准程序。
还是操作系统不同。
至于为啥是main或winmain这个问题,我想两字:规定。
呵呵。
njzjz927 2009-07-03
  • 打赏
  • 举报
回复
不明白~
njzjz927 2009-07-02
  • 打赏
  • 举报
回复
找了半天,终于会给帖子加分了
njzjz927 2009-07-02
  • 打赏
  • 举报
回复
初来乍到,第一次提问,没在意要给分,sorry....
MS我自己也没分,以后会多多回帖赚分~
好心的大侠给个回复吧
Walf_ghoul 2009-07-02
  • 打赏
  • 举报
回复
这个问题没有想过啊,一直以来都在看些语法方面的。ls说的Winmain是封装过的,想想还是挺有道理的。。。
chenzhp 2009-07-02
  • 打赏
  • 举报
回复
Winmain 是封装过的
edwinlxming 2009-07-02
  • 打赏
  • 举报
回复
好像Winmain是微软的封装,追踪下去总会找到main的
不知道理解对不
happy1986 2009-07-02
  • 打赏
  • 举报
回复
恩,Console程序入口都是main,GUI的是WinMain,不过这个也不一定,像有些GUI库规定的入口函数也是main,比如GTK库入口也是main。
cnctloveyu 2009-07-02
  • 打赏
  • 举报
回复
这个,貌似一般的Win32 Console程序(就是一般的C/C++程序),程序的入口是main;对于一般的 Win32 GUI程序,程序的入口是WinMain。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧