WindowAPI--访问当前进程环境变量两种方法

本文介绍了在CUI程序中访问当前进程环境变量的两种方式。一种是在main函数中使用TCHAR* env[]参数,另一种是通过调用GetEnvironmentStrings API。文章详细解释了这两种方法的工作原理,并提供了环境变量字符串的格式说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CUI程序专用

win32控制台程序中可在main函数参数列表中加入TCHAR*env[] 参数,进入main函数时,env参数被赋值,含义为当前进程环境变量,数据类型为字符串指针数组,每个指针都指向一个不同的环境变量(其定义采用常规的“名称=值”的形式)。在此数组中,指向最后一个环境变量字符串的指针后面,会有一个NULL指针,表明这是数组的末尾。

GetEnvironmentStrings

API链接: link.
每个进程都有与它关联的环境块,这是进程地址空间内分配的一块内存,其中包含的字符串和下面相似:
=::=…
VarName1=VarValue1\0
VarName2=VarValue2\0
VarName3=VarValue3\0
VarName4=VarValue4\0

\0

每个字符串第一个部分为此环境变量名称,后跟一个等号,之后是希望赋值给此名称。需要注意的是除了第一个以等号开头的字符串,可能还有其它以等号开头的字符串不作为环境变量使用,可能与进程当前目录关联。
下面演示通过以上两种方式访问当前进程环境变量。

// An highlighted block
// GetEnvironmentStringsDemo.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <windows.h>
#include <strsafe.h>
#include <string>
using namespace std;

void DumpEnvStrings()
{
   
	PTSTR pEnvBlock= GetEnvironmentStrings();//获取当前环境变量

	TCHAR szName[MAX_PATH];
	TCHAR szValue[MAX_PATH];
	PTSTR pszCurrent =pEnvBlock;
	HRESULT hr =S_OK;
	PCTSTR p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值