C++ 在源代码中使用环境变量(编译时)
如何在VS中使用环境变量,例如%WINDIR%?我尝试在属性>预处理器>定义>中添加:C++ 在源代码中使用环境变量(编译时),c++,c,visual-c++,environment-variables,preprocessor,C++,C,Visual C++,Environment Variables,Preprocessor,如何在VS中使用环境变量,例如%WINDIR%?我尝试在属性>预处理器>定义>中添加:ENV_VAR=“($Windir)” 在my.cpp中: std::string s=ENV_VAR 但执行时会打印: C:windows 如何解决此问题?找到了解决方案: 在我的例子中,我应该补充: ENV_VAR=R“($(WINDIR))?”你是说char*ptr=getenv(“yourvenvirvar”)@MahmoudMubarak No我想在编译时执行此操作当您将环境变量添加到预处理器设置时
ENV_VAR=“($Windir)”
在my.cpp中:std::string s=ENV_VAR
但执行时会打印:
C:windows
如何解决此问题?找到了解决方案:
在我的例子中,我应该补充:
ENV_VAR=R“($(WINDIR))?”
你是说char*ptr=getenv(“yourvenvirvar”)
@MahmoudMubarak No我想在编译时执行此操作当您将环境变量添加到预处理器设置时,这意味着环境变量在编译时进行计算,而不是使用getenv
,后者将在运行时(即在目标机上)获取变量值。您想要两者中的哪一个?在项目设置中使用$(EnvVar)
应该可以很好地工作,据我所知,您可以在项目设置中使用与项目变量相同的环境变量,例如$(OutDir)而不带引号,您必须将预处理器变量字符串化。但您的问题可能是预处理器在字符串中放入的单个反斜杠,而C字符串需要转义反斜杠