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" 按钮并执行你的编辑。注意:您可能需要重新启动子会话,让他们看到全局环境变量的变化。
在您描述的最新更新之后,我建议使用命令行参数而不是(或伴随)环境级变量。它们是特定于实例的,易于实施等。
而且,更重要的是,他们是无国籍的。
我在 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" 按钮并执行你的编辑。注意:您可能需要重新启动子会话,让他们看到全局环境变量的变化。
在您描述的最新更新之后,我建议使用命令行参数而不是(或伴随)环境级变量。它们是特定于实例的,易于实施等。
而且,更重要的是,他们是无国籍的。