进程和Windows程序概述
来源:优易学  2011-11-3 16:40:33   【优易学:中国教育考试门户网】   资料下载   IT书店
 进程
  一般进程可以定为一个正在运行的程序的一个实例,
  一个内核对象,操作系统可以用它来管理进程。也是系统保存进程统计信息的地方。
  一个地址空间,其中包含了可执行文件和DLL模块的代码数据,同时包括动态内存分配,和线程堆栈和堆得分配。
  CPU的工作方式,是 一个进程可以有多个线程..然后CPU会轮流调度资源分配给各个线程,就像一个时钟一样。
  关于Windows应用程序的组成
  要点描述:
  1. GUI 和 CUI 分别表示 图形和控制台的界面,
  2./SUBSYSTEM:CONSOLE 和 /SUB-SYSTEM:WINDOWS 分别是控制台和窗口的链接器开关
  3._tWinMain 图形界面的入口点函数 和 _tmain 控制台界面的入口点函数。
  一、Windows一般可以建立两种应用程序。
  1.GUI程序 - 图形用户界面 - 它使用的连接器开关是/SUBSYSTEM:CONSOLE
  2.CUI程序 - 控制台界面 - 它使用的连接器开关是/SUB-SYSTEM:WINDOWS
  操作系统会加载并检查可执行文件映像的文件头,并获取这个子系统值。
  根据子系统值来创建 一个符合要求的程序界面。
  二、 Windows 应用程序 都会有个入口点函数,在程序运行时,函数会被调用。
  int WINAPI _tWinMain(
  HINSTANCE hInstanceExe,
  HINSTANCE,
  PTSTR pszCmdLine,
  int nCmdShow);
  int _tmain(
  int argc,
  TCHAR *argv[],
  TCHAR *envp[]);
  操作系统实际并不调用我们所写的入口点函数。相反,它会调用由C/C++运行库实现并链接时使用-entry:命令选项来设置
  的一个C/C++运行时启动函数。该函数将初始化C/C++运行库,使我们能调用malloc和free之类函数。
  应用程序类型和相应的入口点函数表

进程和Windows程序的基本概述


  当链接器正确选择了C/C++运行库启动函数后,链接器会根据指定的链接器开关,寻找相应的入口点函数,否则会返回
  "unresolved external symbol"(无法解析的外部符号)错误。 不然一般会根据情况分别选择 嵌入可执行文件的启动函数。
  当然我们也可以从自己的项目中移除/SUBSYSTEM链接器开关,让程序自动判断应该使用哪个子系统。
  去启动入口点函数 (WinMain, wWinMain, main, or wmain) 。
  VisualC++有自带C运行库的源码。可以在ertex.c文件中找到 这4个启动入口点函数源代码。这些启动函数的用途下面简单说下:
  1.获取指向心进程的完整命令行的一个指针。
  2.获取指向新进程的坏境变量的一个指针。
  3.初始化C/C++运行库的全局变量。如果包含了StdLib.h,我们的代码就可以访问这些变量。
  4.初始化C运行库内存分配函数malloc和calloc和其他底层I/O历程使用的堆。
  5.调用所有全局和静态C++类对象的构造函数。

[1] [2] 下一页

责任编辑:张瑶

文章搜索:
 相关文章
热点资讯
热门课程培训