



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在VC+中使用OpenCV,一般是建立一个 win32 console application 项目,当运行此类程序的时候,默认情况下会有一个类似DOS窗口的console窗口,供程序与用户之间交互之用。但是有时候我们只想在程序中运行一段功能代码,不希望显示这个 console 窗口,而是让代码执行完毕之后程序自动退出。隐藏这种 win32 console application 的 console 窗口,主要有两种方式:1、通过#pragma指令来修改,即在main函数前添加以下一行代码: #pragma comment( linker, /subsystem:/windows/ /entr
2、y:/mainCRTStartup/ )2、通过设置项目属性来修改,即在 Project Properties - Configuration Properties Linker - System 的 Subsystem 项中,将 Console (/SUBSYSTEM:CONSOLE) 修改为 Console (/SUBSYSTEM:WINDOWS) ,这样就把控制台程序窗口隐去了。上述方法是通过设置编译器的链接开关来实现的,所以让我们来看一下编译器的链接开关选项(也就是 linker 选项)。一、linker 的 /subsystem 选项:该选项的语法形式如下: /SUBSYSTEM:C
3、ONSOLE | EFI_APPLICATION | EFI_BOOT_SERVICE_DRIVER | EFI_ROM | EFI_RUNTIME_DRIVER | NATIVE | POSIX | WINDOWS | WINDOWSCE ,major.minor这个链接选项告诉操作系统如何运行可执行文件。 CONSOLE:win32 字符模式应用程序,此种类型的应用程序在运行的时候会产生一个类似DOS窗口的控制台窗口。如果在应用程序的主函数为 main() 或者 wmain(),在默认情况下该应用程序就是一个控制台应用程序。 Extensible Firmware Interface (E
4、FI_*):这4种 EFI_* 是和CPU具体架构相关的参数选项,并不常用,有兴趣的可以访问 intel 主页来查看相关内容。 NATIVE:设备驱动器选项,如果 /DRIVER:WDM 选项被设定的话,该链接选项(NATIVE)就为默认选项。 POSIX:在windows NT 种运行在POSIX子系统上的应用程序。 WINDOWS:该类型的应用程序不产生console窗口,程序窗口由用户自己创建,简而言之就是一个标准的 Win32 application,其入口地址为 WinMain()函数或者 wWinMain()函数的地址。如果你在应用程序中定义的主函数为 WinMain 或者 wWi
5、nMain,在默认情况下该应用程序就是一个Win32 Application ! WINDOWSCE:运行在 windows CE 上的应用程序。 major and minor (optional):主版本号和次版本号,该选项为可选,该选项为065535之间的十进制整数。从上面可以看出,如果我们建立一个 win32 console application 的话,linker 的 /subsystem 选项应该为CONSOLE,可以在 VC6 开发环境的 project-setting-link-project option 或者 VS2005/2008 开发环境的 Project Prope
6、rties - Configuration Properties Linker - System 中看到!二、应用程序是如何运行的!我们知道用 VC 编写的程序,运行的时候是需要 C/C+ 运行库支持的。当我们运行一个 C/C+ 程序的时候,链接器会首先寻找应用程序的启动函数,例如:如果你建立了一个 console 程序的话,编译器的链接开关会是以下这种形式: /subsystem:console /entry:mainCRTStartup (ANSI) /subsystem:console /entry:wmainCRTStartuup (UNICODE)如果你建立了一个win32 appl
7、ication,编译器的链接开关则会是以下形式: /subsystem:windows /entry:WinMain (ANSI) /sbusystem:windows /entry:wWinMain (UINCODE)上面的两种形式可以在 Project Properties - Configuration Properties Linker - System (VS2005/08)中看到,其中的 subsystem 和 entry 并不需要都设置,如果你只设置了 /subsystem:console 的话,那么默认的 entry 开关应为 /entry:mainCRTStartup;反之,
8、如果你在应用程序中定义了 main 函数的话,默认情况下,你的 /subsystem 开关应该为 /system:console。在默认情况下,/subsystem 和 /entry 开关是匹配的,也就是 console 对应 mainCRTStartup 或者 wmainCRTStartup;windows 对应 WinMain 或者 wWinMain。但是我们也可以通过手动改动的方式使他们不匹配,例如我们可以这样改动: #pragma comment( linker, /subsystem:/windows/ /entry:/mainCRTStartup/ ) / 设置入口地址 int main(int argc, char* argv) MessageBox(NULL, hello, Notice, MB_OK); return 0; 在默认情况下,链接器看到 /subsystem 下是 windows 选项的时候,它会自动寻找 WinMain 或者 wWinMain,但我们强制指定入口地址,这样运行程序的时候
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 4.2实现中华民族伟大复兴的中国梦 课件(内嵌视频) 统编版高中政治必修一
- 2025年民主党派机关招聘考试法律常识模拟题集及答案
- 病理科三基考试试题库及答案
- 2025年机关基建维修工程师招聘笔试要点
- 2025年篮球裁判员专业技能考试试卷及答案
- 2025年湖南省常德市试验检测师之交通工程考试题库及答案(考点梳理)
- 桥梁工程安全知识培训课件
- 2026届北京市朝阳外国语化学高一上期中经典模拟试题含解析
- 2026届河北省深州市长江中学高一化学第一学期期中经典模拟试题含解析
- 2025年制造业品质管理部经理招聘面试题集及解析
- 高中数学开学第一课课件(初高中衔接)
- 养老院老人权益保护制度
- 《煤矿安全规程》考试题库(共986题)
- 航天科技集团招聘 笔试题
- 安踏集团零售管理培训手册
- 慢阻肺患者的护理
- 急诊专科护士进修汇报课件
- 统编版(2024新版)七年级上册《道德与法治》教材探究参考答案
- 风电场投资财务模型构建
- 3.15 秦汉时期的科技与文化 课件 2024-2025学年七年级历史上学期
- 10J113-1内隔墙-轻质条板(一)
评论
0/150
提交评论