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
入口函数还可以任意指定,比如这样:
#pragma comment(linker,"/ENTRY:main")
不过这样据说得不到输入参数,其实没有太大必要.
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.