c++ - 如何在编译时查找环境变量是否存在?

标签 c++ environment-variables visual-studio-2005 c-preprocessor

我不是特别清楚这是否是好事,但我以前工作的地方每个人的计算机上都有一个像 YOUR_NAME 这样的环境变量。然后,如果您有一些只对您自己感兴趣的调试代码,您可以将其包装在 #if defined( YOUR_NAME ) 中,并且它甚至不会为其他人编译,除非他们将其更改为#if defined( YOUR_NAME ) ||定义( THEIR_NAME )

我刚刚尝试自己做这件事,但它似乎没有用,重新启动 Visual Studio,然后重新启动计算机,但它似乎仍然没有被拾起。这个 hack 是否比我理解的更多,或者它是否需要在 Visual Studio 中选择特定版本/选项?

最佳答案

基于 IanH 的设置,使用 Visual Studio,

  • 在 Project Explorer 面板中右键单击项目名称。
  • 选择属性页
  • 打开Configuration Properties,C/C++,Preprocessor(这是VS2008的位置,但在vs2005中应该类似)
  • 对于预处理器定义,应该有 WIN32;_DEBUG 和其他预处理器。最后,添加 ;YOUR_NAME="$(YOUR_NAME)"
  • 请注意,如果在 YOUR_NAME 变量中有一个空格,它会非常不高兴,

关于c++ - 如何在编译时查找环境变量是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3459063/

相关文章:

php - 如何在 php 扩展中访问 http header

c++ - 一种用于 POD 的模板特化,一种用于类层次结构和其他情况下的错误?

regex - 在 PowerShell 中,如果环境变量(如 $SystemRoot$)是字符串的一部分,我该如何转换它们?

bash - 从通过 post-receive 钩子(Hook)创建的 ssh session 调用时,导出不起作用

logging - 如何为log4net指定通用应用程序数据文件夹?

vb.net - Visual Studios 设计器实现中的表单继承

c++ - std 函数 std::_Rb_tree_rebalance_for_erase () 中的段错误

C++ "expected a declaration"

c++ - std::exception::_Raise 和 std::exception::exception 上的 VC++ 链接器错误

c++ - 调试器忽略动态加载的 DLL 中的错误