文档介绍:晨宇思远C博客
OpenCV学(2)隐藏 Console 窗口
在VC++中使用OpenCV, 通常是建立一个 win32 console application 项目, 当运行这类程序时候, 默认情况下会有一个类似DOS窗口console窗口, 供程序和用户之间交互之用。  
不过有时候我们只想在程序中运行一段功效代码, 不期望显示这个 console 窗口, 而是让代码实施完成以后程序自动退出。 隐藏这种 win32 console application console 窗口, 关键有两种方法:
1、 经过#pragma指令来修改, 即在main函数前添加以下一行代码:  
正确 #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
    错误#pragma comment( linker, "/subsystem:/"windows/" /entry:/"mainCRTStartup/"" )
2、 经过设置项目属性来修改, 即在 Project –> Properties -> Configuration Properties –> Linker -> System Subsystem 项中, 将 Console (/SUBSYSTEM:CONSOLE) 修改为 Console (/SUBSYSTEM:WINDOWS) , 这么就把控制台程序窗口隐去了。
上述方法是经过设置编译器链接开关来实现, 所以让我们来看一下编译器链接开关选项(也就是 linker 选项)。
一、 linker /subsystem 选项:
该选项语法形式以下:  
  
        /SUBSYSTEM:{CONSOLE | 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 (EFI_***):  
这4种 EFI_*** 是和CPU具体架构相关参数选项, 并不常见, 有爱好能够访问 intel 主页来查看相关内容。
—— NATIVE:  
设备驱动器选项, 假如 /DRIVER:WDM 选项被设定话, 该链接选项(NATIVE)就为默认选项。
—— POSIX:  
在windows NT 种运行在POSIX子系统上应用程序。
—— WINDOWS:  
该类型应用程序不产生console窗口, 程序窗口由用户自己创建, 简而言之就是一个标准 Win32 applicati