1、程序能够使用的C / C + +运行期全局变量
变量名 类型 说明
_ o s v e r unsigned int 操作系统的测试版本。例如, Windows 2000 Beta 3是测试版本2 0 3 1。因此_ o s v e r的值是2 0 3 1
_ w i n m a j o r unsigned int 采用十六进制表示法的Wi n d o w s主要版本。对于Wi n d o w s2 0 0 0来说,它的值是5
_ w i n m i n o r unsigned int 采用十六进制表示法的Wi n d o w s次要版本。对于Wi n d o w s2 0 0 0来说,它的值是0
_ w i n v e r unsigned int ( w i n m a j o r < < 8 ) + w i n m i n o r在命令行上传递的参数号
- - a rg c unsigned int
- - a rg v c h a r * * 带有指向A N S I / U n i c o d e字符串的指针的_ a rg c大小的数组
- - w a rg v w c h a r t * * 每个数组项均指向一个命令行参数
_ e n v i r o n c h a r * * 指向A N S I / U n i c o d e字符串的指针的数组。每个数组项指向
_ w e n v i r o n w c h a r t * * 一个环境字符串
_ p g m p t r c h a r * 正在运行的程序的A N S I / U n i c o d e全路径和名字
_ w p g m p t r w c h a r t *
第一次认识_pgmptr/_wpgmptr/_tpgmptr,原来获得程序的路径也可以用这个全局变量的,在VC2005中测试,编译时提示:warning C4996: “_wpgmptr”被声明为否决的
2、H M O D U L E与H I N S TA N C E是完全相同的对象
( w ) Wi n M a i n的h i n s t E x e参数的实际值是系统将可执行文件的映象加载到进程的地址空间时
使用的基本地址空间。例如,如果系统打开了可执行文件并且将它的内容加载到地址
0 x 0 0 4 0 0 0 0 0中,那么( w ) Wi n M a i n的h i n s t E x e参数的值就是0 x 0 0 4 0 0 0 0 0。
请记住G e t M o d u l e H a n d l e函数的两个重要特性。首先,它只查看调用进程的地址空间。如
果调用进程不使用常用的对话框函数,那么调用G e t M o d u l e H a n d l e并为它传递“C o m D l g 3 2”后,
就会返回N U L L,尽管C o m D l g 3 2 . d l l可能加载到了其他进程的地址空间。第二,调用
G e t M o d u l e H a n d l e并传递N U L L值,就会返回进程的地址空间中可执行文件的基地址。因此,
即使通过包含在D L L中的代码来调用( N U L L),返回的值也是可执行文件的基地址,而不是
D L L文件的基地址。