Visual Studio C++ stdlib getenv 无法识别环境变量

Visual Studio environmant variable not recognized by C++ stdlib getenv

我在 windows 上有一个 C++ 项目,我在该项目上使用 stdlib 中的 getenv 方法来获取环境变量 $MyVar 的值 当我在 cmd 中设置变量 MyVar 然后在命令行中调用我的程序时,一切正常。 但是当我从 Visual Studio (2012) 调用它时,程序将 $MyVar 视为未设置。

为了尝试在 Visual Studio 中设置它,我尝试使用 属性 Sheet 将宏 MyVar 定义为环境变量(cf. image below) 但 stdlib 中的 getenv 方法看不到它。

Screenshot of the window where I tried to define the env variable in Visual Studio

有没有办法以 stdlib 中的 getenv 方法能够识别的方式在 Visual Studio 中定义我的环境变量?

提前感谢大家的帮助

编辑: 我知道 getenv 方法会识别 MyVar 如果我将它定义为全局环境变量,但这不是我的解决方案,因为我希望能够在MyVar 的同一时间具有不同的值。 我需要一种在 Visual Studio 中定义本地环境变量的方法,当我从 Visual Studio.

启动程序时,它会被我的程序识别

问题是:有不同的环境,所以一旦您在一个环境中创建了一个 var,它就不会出现在其他环境中。

1) 创建 cmd 会话后,OS 会为其创建专用环境。因此,一旦您在提示中创建了一个 var,在此 cmd 中启动的任何应用程序都将能够看到该 var。一旦你杀死那个 cmd,所有的变量也都消失了。

2) 如果您需要全局更改环境变量,您必须访问 "Advanced System Settings" 对话框(控制 Panel\System 和 Security\System)然后单击 "Environment variables" 按钮并执行你的编辑。注意:您可能需要重新启动子会话,让他们看到全局环境变量的变化。

在您描述的最新更新之后,我建议使用命令行参数而不是(或伴随)环境级变量。它们是特定于实例的,易于实施等。

而且,更重要的是,他们是无国籍的。