“关于进程和Windows应用程序的介绍”
复制来源:系统之家
今天,我们来谈谈流程和windows应用程序介绍的拷贝。 这里简要介绍一下流程和windows应用程序。 希望能帮到大家。
过程
通常,进程可以是正在运行的程序的实例。
操作系统可以用来管理进程的内核对象。 也是系统留下过程统计消息的地方。
地址空之间包含可执行文件和dll模块的代码数据,包括动态内存分配、线程堆栈和堆分配。
cpu的工作方法是,一个进程可以具有多个线程...然后cpu按顺序将资源分配给各个线程,就像一个时钟一样。
关于windows应用程序的构成
重要说明:
1. gui和cui分别表示图形和控制台的接口,、
2./ subsystem :控制台和/sub-system:windows分别是控制台和窗口的链接器开关
3._twinmain图形界面的入口点函数和_tmain控制台界面的入口点函数。
另一方面,windows通常可以建立两种应用程序。
1.gui程序-图形客户端接口-采用的连接器开关为/subsystem:console
2.cui程序-控制台接口-它采用的连接器开关为/sub-system:windows
操作系统加载并检查可执行文件映像的标头,然后获取此子系统值。
根据子系统的值,创建满足要求的程序接口。
二、windows应用程序
有一个在程序运行时调用的入口点函数。
使用int winapi _ twin主菜单(
hinstance hinstanceexe,
hinstance、
ptstr pszcmdline,
int ncmdshow;
int _tmain (
国际航空运输协会,
tchar *argv[]、
tchar *envp[];
操作系统实际上不调用我们写的入口点函数。 而是使用-entry :命令选项设置由c/c++运行时库实现并链接的调用
的c/c++运行时启动函数。 此函数初始化c/c++运行时库,以便可以调用诸如malloc和free之类的函数。
应用程序类型和相应的入口点函数表
如果链接器正确选择了c/c++运行库启动函数,则链接器将根据指定的链接器开关查找相应的入口点函数。 否则,我就回去
“未解决的外部符号”错误。 否则,通常会根据情况选择要嵌入到可执行文件中的启动函数。
当然,也可以从自己的项目中删除/subsystem链接器开关,以便程序可以自动评估应该采用哪个子系统。
启动入口点函数(维、维、主、或维)。
visualc++有c运行时库附带的源代码。 这四个启动入口点函数的源代码位于ertex.c文件中。 以下简要说明这些启动函数的用途。
1 .获取指向心形进程的完美命令行的指针。
2 .获取指向新进程的恶劣环境变量的指针。
初始化c/c++运行时库中的全局变量。 如果包含stdlib.h,代码可以访问这些变量。
4 .初始化c运行时库的内存分配函数malloc、calloc和其他基础i/o历史记录中采用的堆。
5 .调用所有全局和静态c +类对象的构造函数。
c/c++启动函数调用应用程序的入口点函数。 例如,我们编写了_twinmain函数,并定义了_unicode
调用过程如下:
获取启动信息(启动信息;
intnmainretval = wwinmain ( ( hinstance ) __imagebase,空值,pszcommandlineunicode,
(启动信息. dwflagsstartf _ use show窗口)
? 启动信息:软件_显示默认;
_如果未定义_unicode,则调用过程如下所示:
获取启动信息(启动信息;
intnmainretval = winmain ( ( hinstance ) __imagebase,空值,pszcommandlineansi,
(启动信息. dwflagsstartf _ use show窗口)
? 启动信息:软件_显示默认;
观察_imagebase是由链接器定义的伪变量,稍后将解释可执行文件映射到应用程序内存中的何处。
如果现在写了_main函数,可以定义吗? _unicode的调用过程如下:
intnmainretval = wmain (弧、弧、弧);
_未定义_unicode。 调用过程如下:
intnmainretval = main (弧、弧、弧);
另外,观察visual studio生成的应用程序cui是没有入口点的第三个参数
int _ tmain (整数数组,字符数组);
必须自己追加
int _ tmain (英特尔航空,tchar *航空[ ],tchar *航空[ ] ) )
env参数是指一个参数,所有环境变量和值都用等号( = )分隔。
为了安全起见,微软不赞成采用所有这些变量。 如果采用这些变量代码,则需要直接调用的windowsapi函数,因此c运行时库可能会在初始化这些变量之前执行。
过程是操作系统中最基本、最重要的概念。 是为了描述多个程序系统出现后系统内部出现的动态,描述系统内部各程序的活动规律而引入的概念,所有多个程序设计操作系统都是建立在过程基础上的。 应用程序是指为执行特定任务或特定任务而开发并在操作系统上运行的计算机程序。
我相信通过对流程和windows应用程序的介绍的副本对你有帮助。 和好朋友分享的时候,也欢迎感兴趣的朋友们一起探讨。
免责声明:雪球目录网免费收录各个行业的优秀中文网站,提供网站分类目录检索与关键字搜索等服务,本篇文章是在网络上转载的,本站不为其真实性负责,只为传播网络信息为目的,非商业用途,如有异议请及时联系btr2031@163.com,本站的工作人员将予以删除。