VC++隐藏控制台窗口.doc

VC++隐藏控制台窗口.doc

ID:57691148

大小:16.50 KB

页数:2页

时间:2020-09-01

VC++隐藏控制台窗口.doc_第1页
VC++隐藏控制台窗口.doc_第2页
资源描述:

《VC++隐藏控制台窗口.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VC++隐藏控制台窗口大家都知道,当编写一个win32consoleapplication时,当运行此类程序的时候默认情况下会有一个类似dos窗口的console窗口,但是有的时候我们只想在程序中运行一段功能代码,不希望显示这个console窗口,让代码执行完毕之后程序自动退出.下面就介绍一下,如何隐藏win32consoleapplication的console窗口因为此种方法是通过设置编译器的链接开关来实现,所以让我们来看一下编译器的链接开关选项(也就是linker选项).首先我们来看一下linker的/subsystem选项该选项的语法形

2、式如下:/subsystem:{console

3、efi_application

4、efi_boot_service_driver

5、efi_rom

6、efi_runtime_driver

7、native

8、posix

9、windows

10、windowsce}[,major[.minor]]这个链接选项告诉操作系统如何运行可执行文件console:win32字符模式应用程序,此种类型的应用程序在运行的时候会产生一个类似dos窗口的控制台窗口,如果在应用程序的主函数为main()或者wmain(),在默认情况下该应用程序就是一个控制台应用程序extensible

11、firmwareinterface和cpu具体架构相关的一个参数选项,并不常用,在这里暂不详细介绍.如果对此有兴趣的可以访问intel主页来查看相关内容native;设备驱动器选项,如果/driver:wdm选项被设定的话,该链接选项(native)就为默认选项posix:在windowsnt种运行在posix子系统上的应用程序windows:该类型的应用程序不产生console窗口,该类型的应用程序的窗口由用户自己创建,简而言之就是一个标准的win32application,其入口地址为winmain()函数或者wwinmain()函数的地址

12、如果你在应用程序种定义的主函数为winmain或者wwinmain,在默认情况下该应用程序就是一个win32application!windowsce:运行在windowsce上的应用程序majorandminor(optional):主版本号和次版本号,该选项为可选,该选项为0~65535之间的十进制整数从上面可以看出如果我们建立一个win32consoleapplication的话,linker的/subsystem选项应该为console,可以在vc开发环境的project->setting->link->projectoption中看到

13、!接下来我们再看看应用程序是如何运行的!我们知道用vc编写的程序,运行的时候是需要cc运行库支持的.当我们运行一个c/c程序的时候链接器会首先寻找应用程序的启动函数,例如:如果你建立了一个console程序的话,编译器得链接开关会是以下这种形式/subsystem:console/entry:maincrtstartup(ansi)/subsystem:console/entry:wmaincrtstartuup(unicode)如果你建立了一个win32application,编译器得链接开关则会是一下形式/subsystem:windows

14、/entry:winmain(ansi)/sbusystem:windows/entry:wwinmain(uincode)上面的两种形式可以再project->setting->link->projectoption中看到上面的subsystem和entry并不需要都设置,如果你只设置了/subsystem:console的话,那么默认的entry开关在默认情况下应为/entry:maincrtstartup反之,如果你在应用程序中定义了main函数的话,默认情况下,你的/subsystem开关应该为/system:console在默认情况下

15、/subsystem和/entry开关是匹配的,也就是console对应maincrtstartup或者wmaincrtstartupwindows对应winmain或者wwinmain但是我们也可以通过手动改动的方式使他们不匹配例如我们可以这样改动#pragmacomment(linker,/subsystem:windows/entry:maincrtstartup)//设置入口地址intmain(intargc,char*argv[]){messagebox(null,hello,notice,mb_ok);return0;}在默认情况下

16、链接器看到/subsystem下是windows选项的时候,它会自动寻找winmain或者wwinmain但我们强制指定入口地址,这样运行程序的时候默

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。