subsystem

更新时间:2024-07-06 09:04

subsystem,连接器参数,用来指定程序的入口函数,Windows操作系统在装载应用程序并且做完初始化工作后,就转到程序的入口点开始执行你编写的程序。

系统介绍

程序的默认入口点实际上是由连接程序设置的,不同的连接器选择的入口函数也大都不同。在VC++ 6.0下,连接器对控制台程序所设置的入口函数是 mainCRTStartup,也就是说Windows操作系统在装载完程序并且初始化完成后,就进入入口函数mainCRTStartup ,然后由它调用你自己编写的 main 函数,开始执行具体的代码;对于图形用户界面GUI)程序设置的入口函数是 WinMainCRTStartup,和上面一样,WinMainCRTStartup再调用你写的WinMain 函数执行具体功能。

那么,设置哪个入口点可以由连接器的“/subsystem:”参数确定的,它告诉操作系统如何运行编译连接所生成的.exe可执行文件。这里我们可以指定四种方 式:“CONSOLE | WINDOWS | NATIVE | POSIX”如果这个选项参数的值为“WINDOWS”,则表示该应用程序运行时不需要控制台。

详细参数

该选项的语法如下:

/SUBSYSTEM:{ CONSOLE | WINDOWS | NATIVE | WINDOWSCE | POSIX |} [,left[,right]]

CONSOLE

win32 字符模式应用程序,此种类型的应用程序在运行的时候会产生一个类似DOS

窗口的控制台窗口,如果在应用程序的主函数为main或者wmain时,在默认情况下

该应用程序就是一个控制台应用程序 。

WINDOWS

该类型的应用程序不产生console窗口,该类型的应用程序的窗口由用户自己创建,简而言之

就是一个标准的Win32 application,其入口地址为WinMain函数或者wWinMain函数的地址,

如果你在应用程序中定义的主函数为WinMain或者wWinMain,在默认情况下该应用程序就是一个

Win32 Application !

NATIVE

设备驱动器选项,如果/DRIVER:WDM选项被设定的话,该链接选项(NATIVE)就为默认选项 。

WINDOWSCE

运行在windows CE上的应用程序。

POSIX

在windows NT 种运行在POSIX子系统上的应用程序。

[,left[,right]]:

主版本号和次版本号,该选项为可选,该选项为0~65535之间的十进制整数,CONSOLE, WINDOWS, and NATIVE 默认的版本号为4.00;

POSIX默认的版本号为19.90。

以下是Microsoft MSDN原文:

This option edits the image to indicate which subsystem the operating system must invoke for execution. /SUBSYSTEM:{CONSOLE|WINDOWS|NATIVE|WINDOWSCE|POSIX|}[,left[,right]]

You can specify any of the following subsystems:

The CONSOLE subsystem handles a Win32 character-mode application that use a console supplied by the operating system.

The WINDOWS subsystem handles an application that does not require a console and creates its own windows, if required.

The NATIVE subsystem handles a Windows NT device driver.

The WINDOWSCE subsystem handles Windows CE consumer electronics applications.

The POSIX subsystem handles a POSIX application in Windows NT.

The optional left and right values specify the minimum required version of the specified subsystem. The whole number part of the version number (the portion to the left of the decimal point) is represented by left. The fractional part of the version number (the portion to the right of the decimal point) is represented by right. The values of left and right must be from 0 through 65,535. The default is version 4.00 for CONSOLE, WINDOWS, and NATIVE; and version 19.90 for POSIX.

应用举例

例一:

#include

#include

#include

int main

int n;

n=strlen(s);//测量字符串长度

itoa(n,b,10);//将整数转换为字符串,以十进制方式

strcat(a,b);//连接字符串

return 0;

例二:

#include

#include

int main

Sleep(50);//执行暂停50毫秒,windows下参数为毫秒,想要暂停一秒:Sleep(1000);linux下参数为秒!

Sleep(50);

Sleep(50);

return 0;

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}