登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> 程序员学前班[不再更新,只读] >> 主题: 《每月编程》2005年5月     [回主站]     [分站链接]
标题
《每月编程》2005年5月
clq
浏览(0) + 2005-05-18 22:49:28 发表 编辑

关键字:

1.让VC程序有DOS控制台窗口,让控制台程序没有DOS窗口
有经验的C程序员都知道,windows程序下也是可以用printf()函数的,但是它没有DOS控制台窗口,所以显示不出来。象我这样用标准C++开发跨平台程序的人,在开发linux程序时总喜欢用printf而windows下却看不到东西,实在是非常的不爽。那么有没有办法让windows也能有DOS窗呢?答案是有,我无意中研究VC编译器参数时发现,它的向导在是否生成DOS窗口时实际上是改变了编译参数而已,因此我们可以通过更改编译参数的方法来实现。

在MFC程序中应当直接在link的选项中设置。

/SUBSYSTEM:CONSOLE这可以产生DOS窗口,但这样编译是会出错的,我们还要改程序入口函数为winmain()因为控制台程序默认的入口是main()函数。方法是加参数/ENTRY:WinMainCRTStartup。

类似的,使控制台程序不显示DOS窗的参数为
/SUBSYSTEM:WINDOWS
/ENTRY:mainCRTStartup

控制台程序还可以在main()函数所在的文件中直接写上宏代码来设置:
//VC的编译控制参数,在MFC程序中应当直接在link的选项中设置

//VC中控制生成程序的是控制台还是窗体系统//其实是就控制是否出现DOS窗口
//#pragma comment(linker,"/SUBSYSTEM:WINDOWS")
//#pragma comment(linker,"/SUBSYSTEM:CONSOLE")
//VC中控制主程序的入口点
#pragma comment(linker,"/ENTRY:mainCRTStartup")
//#pragma comment(linker,"/ENTRY:WinMainCRTStartup")

不过MFC程序中应该怎么怎么用这些宏,我还没试出来。 [s:7]

OK 这就是我们《每月编程》的第一辑(小节),怎样还有点意思吧。改天我贴编译参数的设置截图上来。

clq
2008-7-23 10:03:20 发表 编辑

入口函数还可以任意指定,比如这样:

#pragma comment(linker,"/ENTRY:main")

不过这样据说得不到输入参数,其实没有太大必要.


总数:1 页次:1/1 首页 尾页  
总数:1 页次:1/1 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1