天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧软件 >> 正文

进程和Windows程序的基本概述

2009-9-27不详佚名

       
       当链接器正确选择了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++类对象的构造函数。
      

变量名称

类型

描述和推荐使用的Windws函数

_osver

unsigned int

操作系统构建的版本号, 如Windows Vista RTM was build 6000. 所以, _osver 的值就是6000. 请换用 GetVersionEx.

_winmajor

unsigned int

以十六进制表示的Windows系统的主版本. 对于Windows Vista,该值为6. 请换用GetVersionEx.

_winminor

unsigned int

以十六进制表示的Windows系统的主版本. 对于Windows Vista,该值为0. 请换用GetVersionEx.

_winver

unsigned int

(_winmajor << 8) + _winminor. 请换用GetVersionEx.

__argc

unsigned int

命令行上传递的参数个数. 请换用 GetCommandLine .

__argv

__wargv

char

wchar_t

长度为 __argc 的一个数组 ,其中含有指向 ANSI/Unicode 字符串指针.

数组中的每一项都指向一个命令行参数. 注意,如果定义了_UNICODE,__argv 就为 NULL如果没有定义__wargv 为 NULL 请换用 GetCommandLine.

_environ

_wenviron

char

wchar_t

一个指针数组,这些指针指向ANSI/Unicode字符串. 数组中的每一项都指向一个环境字符串. 注意,如果没定义_UNICODE ,_wenviron 就为 NULL如果已经定义了_UNICODE, _environ is NULL。请换用GetEnvironmentStrings 或 GetEnvironmentVariable

_pgmptr

_wpgmptr

char

wchar_t

正在运行的程序的名称及其ANSI/Unicode完整路径.

注意,如果已经定义了 _UNICODE ,_pgmptr is NULL如果没有定义——UNICODE,_wpgmptr is NULL 请换用GetModuleFileName, 将 NULL 作为第一个参数传给该函数。

9 7 3 1 2 3 4 8 :

本文来源:不详 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:_WX_1_本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行