Windows核心编程学习笔记(4)--环境变量值的获取

Drecik学习经验分享

转载请注明出处:http://blog.csdn.net/drecik__/article/details/8079927

 

  1. 一种方法是可以调用GetEnvironmentStrings来获取全部的环境变量字符串,但这样做的坏处是需要自己解析环境变量,所以着重介绍后一种方法
  2. 另一种方法可以调用GetEnvironmentVariable来获得某一项环境变量的值,具体用法:
    void PrintEnvironmentVariable( PCTSTR pszVariableName )
    {
    	// 首先传入参数0,返回需要的字符数,如果为0则未找到该环境变量;
    	PTSTR pszValue = NULL;
    	DWORD dwResult = GetEnvironmentVariable( pszVariableName, pszValue, 0 );
    	if ( dwResult )
    	{
    		pszValue = (PTSTR)malloc(dwResult*sizeof(TCHAR));
    		GetEnvironmentVariable( pszVariableName, pszValue, dwResult );
    		_tprintf(TEXT("%s=%s\n"), pszVariableName, pszValue );
    		free(pszValue);
    	}
    	else
    	{
    		_tprintf(TEXT("'%s'=<unknow value>\n"), pszVariableName );
    	}
    }
    还有与环境变量相关的函数是ExpandEnvironmentStrings和SetEnvironmentVariable,分别为获得可替换字符串的值和设置环境变量的值,函数原型如下:
    // 该函数用法与获得环境变量的值一样;
    DWORD ExpandEnvironmentStrings(
    	LPCWSTR lpSrc,
    	LPWSTR lpDst,
    	DWORD nSize
    	);
    
    // 根据参数名很好理解;
    BOOL SetEnvironmentVariable(
    	LPCWSTR lpName,
    	LPCWSTR lpValue
    	);
    

你可能感兴趣的:(Windows核心编程学习笔记(4)--环境变量值的获取)