社区
新手乐园
帖子详情
为啥windows要搞一个WinMain
jiandingzhe
2012-09-17 04:24:10
像unix那样,如果在终端里运行就有终端,双击运行就没终端,不是很和谐吗?
...全文
249
17
打赏
收藏
为啥windows要搞一个WinMain
像unix那样,如果在终端里运行就有终端,双击运行就没终端,不是很和谐吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jiandingzhe
2012-09-19
打赏
举报
回复
[Quote=引用 13 楼 的回复:]
其实这个问题没啥可讨论的吧。看楼上各位都是说微软的行为不好。
其实我认为都遵循一样的标准是为了可移植,跨平台。
但在WINDOWS下写的程序有可能会移植到别的平台下吗?
那它爱叫什么就叫什么得了呗
[/Quote]
有,多了去了。
珍惜生命远离CPP
2012-09-19
打赏
举报
回复
[Quote=引用 11 楼 的回复:]
引用 6 楼 的回复:
1
main有2个参数,只能得到命令行参数。
WinMain有4个参数,默认得到的信息要超过main函数得到的。当然这些都可以调用api得到。
2
main会初始化输入输出,winmian不会。一般窗口程序不需要输入输出,少做一些无用的东西
我记得main可以有env参数。
[/Quote]
C标准规定了 main只有2种写法
int main(void) { /* ... */}
int main(int argc, char *argv[]) { /* ... */ }
紫雪
2012-09-18
打赏
举报
回复
每一个编译器都有自己的特点,就像你说的UNix下面不需要什么就可以一样,VC中的主函数入口就像一扇门,没有它就不能进入你想要的房间里面。这样确实有点历史性的倒退,但是反观一下,这样不就更加具有逻辑性了吗?
竞天问
2012-09-18
打赏
举报
回复
其实这个问题没啥可讨论的吧。看楼上各位都是说微软的行为不好。
其实我认为都遵循一样的标准是为了可移植,跨平台。
但在WINDOWS下写的程序有可能会移植到别的平台下吗?
那它爱叫什么就叫什么得了呗
jiandingzhe
2012-09-18
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
窗口程序里面的WinMain,就想c里面main,有什么不好吗?
[/Quote]
对语言标准的干涉,它修改了默认的入口函数。
而我完全找不到窗口程序必须用不同的入口函数名的理由。
jiandingzhe
2012-09-18
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
1
main有2个参数,只能得到命令行参数。
WinMain有4个参数,默认得到的信息要超过main函数得到的。当然这些都可以调用api得到。
2
main会初始化输入输出,winmian不会。一般窗口程序不需要输入输出,少做一些无用的东西
[/Quote]
我记得main可以有env参数。
图灵狗
2012-09-18
打赏
举报
回复
因为有了WinMain,所以乔布斯看不起比尔盖茨。
冷月清晖
2012-09-18
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
引用 3 楼 的回复:
我很早之前也问过这个问题,:)
答案是....
[/Quote]
没有标准答案,参见楼上各位。
jiandingzhe
2012-09-18
打赏
举报
回复
[Quote=引用 14 楼 的回复:]
每一个编译器都有自己的特点,就像你说的UNix下面不需要什么就可以一样,VC中的主函数入口就像一扇门,没有它就不能进入你想要的房间里面。这样确实有点历史性的倒退,但是反观一下,这样不就更加具有逻辑性了吗?
[/Quote]
编译器当然可以有自己的特点,但是语言标准更应当被遵守。
康斯坦汀
2012-09-17
打赏
举报
回复
这是微软对标准main函数的粗暴修改。哈哈。谁让你用人家的操作系统?就要遵守人家定的
规则。
northcan
2012-09-17
打赏
举报
回复
窗口程序里面的WinMain,就想c里面main,有什么不好吗?
珍惜生命远离CPP
2012-09-17
打赏
举报
回复
1
main有2个参数,只能得到命令行参数。
WinMain有4个参数,默认得到的信息要超过main函数得到的。当然这些都可以调用api得到。
2
main会初始化输入输出,winmian不会。一般窗口程序不需要输入输出,少做一些无用的东西
星星眼
2012-09-17
打赏
举报
回复
双击运行就没终端?如果一个控制台程序要输入字符呢?
只是个人习惯的问题,非要和操作系统扯在一起。。。。。
shiter
2012-09-17
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
我很早之前也问过这个问题,:)
[/Quote]
答案是....
冷月清晖
2012-09-17
打赏
举报
回复
我很早之前也问过这个问题,:)
mujiok2003
2012-09-17
打赏
举报
回复
MS默认的入口函数(WinMain for GUI App, main for win32 console apps)可以自己在linker的参数中指定。
图灵狗
2012-09-17
打赏
举报
回复
说的很对,Windows系统其实是历史的倒退,商业上的成功在于大多数用户都是不专业的。
win
dows
程序设计
连结程序使用该信息在.EXE文件中建立
一个
表格,在加载程序时,
Win
dows
使用它将呼叫转换为
Win
dows
函数。
WIN
DOWS
程序设计选项 为说明
Win
dows
程序设计的多种技术,本书提供了许多范例程序。这些程序使用C语言撰写并...
Win
Main
的基本流程
一、
Win
Main
入口点我们在学习标准C++的时候,都知道每个应用程序运行时都会先进入入口点函数
main
,而当从
main
函数跳出时程序就结束了。在
Win
dows
编程里面,也是一样的,只是我们的入口点函数不叫
main
,叫
Win
Main
...
Win
dows
程序设计(从
Win
Main
开始)
目录抽象渗漏法则(摘自Joel) 针对
Win
dows
GUI编程的封装 只用API函数创建GUI程序
Win
Main
函数 登记自己的窗口类 创建主窗口 消息循环 完整的示例代码 一、抽象...Joel举过
一个
例子: C++字符串类型应该能让你假装字
从
Win
Main
开始
本文应
一个
初学
Win
dows
程序设计的朋友而作。目录 抽象渗漏法则(摘自Joel) 针对
Win
dows
GUI编程的封装 只用API函数创建GUI程序
Win
Main
函数 登记自己的窗口类 创建主窗口 消息循环 完整的示例代码 一、抽象渗漏法则...
WIN
MAIN
#define
WIN
API __stdcall ...
WIN
API 转换成CALLBACK也是可行的,因为#define CALLBACK __stdcall,但人家之所以给同
一个
东西定义两个宏,当然是为了让程序能看懂,不然你在
win
main
前加
一个
CALLBACK别人...
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章