Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在源代码中使用环境变量(编译时)_C++_C_Visual C++_Environment Variables_Preprocessor - Fatal编程技术网

C++ 在源代码中使用环境变量(编译时)

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我想在编译时执行此操作当您将环境变量添加到预处理器设置时

如何在VS中使用环境变量,例如%WINDIR%?我尝试在属性>预处理器>定义>中添加:
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字符串需要转义反斜杠