C++ 如何在Windows C++;

C++ 如何在Windows C++;,c++,windows,environment-variables,C++,Windows,Environment Variables,我一直在尝试在将一个公司的产品移植到一个与Windows兼容的版本中方面取得任何进展。事情进展得不太顺利。我有两个不同的开发分支,有两个不同的问题。在这个问题中,我必须为Unixclearenv()函数移植本质上是一个包装器的东西,它将从表中完全清除所有用户环境变量。可能是出于安全原因,我找不到一个与Windows的clearenv()等效的解决方案,我找到/想出的一个解决方案将清除进程中的所有环境变量,包括系统变量。我想要一个解决方案,可以消除所有用户环境变量,但不能触及系统变量 我知道这可能

我一直在尝试在将一个公司的产品移植到一个与Windows兼容的版本中方面取得任何进展。事情进展得不太顺利。我有两个不同的开发分支,有两个不同的问题。在这个问题中,我必须为Unix
clearenv()
函数移植本质上是一个包装器的东西,它将从表中完全清除所有用户环境变量。可能是出于安全原因,我找不到一个与Windows的
clearenv()
等效的解决方案,我找到/想出的一个解决方案将清除进程中的所有环境变量,包括系统变量。我想要一个解决方案,可以消除所有用户环境变量,但不能触及系统变量

我知道这可能是一件愚蠢的事情,但它在代码中,所以我必须尝试移植它


另外,如果有帮助的话,我正在从文档中的MinGW下编译:

hToken[输入,可选] […]如果此参数为NULL,则返回的环境块仅包含系统变量


通过process environment块并将其更改为与此函数返回的“system only”(仅系统)块匹配仍然会有点混乱,但至少您将获得必要的信息。

您可以编写一个简单的函数来删除当前环境变量

首先,可以使用函数CreateEnvironmentBlock检索包含整个键数组的块

其次,使用函数SetEnvironmentVariable循环所有值为NULL的键,这将删除环境值