如何使用GetEnvironmentVariable打印环境值

时间:2014-03-19 07:21:49

标签: c# visual-c++ environment-variables

我正在学习C ++。我需要打印特定环境变量的环境值。我找到了检查是否定义了环境变量的示例。但是如何打印环境值。

GetEnvironmentVariable(_T("path"), Buffer, _MAX_PATH);返回DWORD并且它正在打印一些整数,但我需要打印“C:\ programfiles \ windows”之类的确切值。

在C#中我可以使用

执行此操作
string abc = Environment.GetEnvironmentVariable("PATH");
cout<<a;

如何在VC ++中执行此操作。感谢

1 个答案:

答案 0 :(得分:1)

_MAX_PATH可能不足以保持整个价值。您应首先使用nullptr和size 0调用该方法以获取所需的大小,然后分配该大小的缓冲区。

auto size = GetEnvironmentVariableA("PATH", nullptr, 0);
std::string Buffer(size, 0);
GetEnvironmentVariableA("PATH", &Buffer[0], size);
std::cout << Buffer << std::endl;

更新:对于预C ++ 11编译器:

DWORD size = GetEnvironmentVariableA("PATH", NULL, 0);