【问题标题】:In visual studio 2010 under #ifdefine WINDOWS statements are not compiled在Visual Studio 2010 下#ifdefine WINDOWS 语句未编译
【发布时间】:2014-04-09 04:26:19
【问题描述】:

我在 Visual Studio 2010 的一个 dll 项目中写了一个小的条件语句,如下所示。

#ifndef WINDOWS
int a=10;
#endif

从上面的条件语句中,对于windows操作系统,这个语句(int a=10)不应该被包含进来。但是这个语句(int a=10)在编译的时候也包含进来了。

我找不到问题。

【问题讨论】:

  • 因为WINDOWS 没有预定义。

标签: c windows visual-studio-2010


【解决方案1】:

由于没有在任何地方定义 WINDOWS,因此将包含该变量。没有这样的预定义宏。

试试#ifndef _WIN32#ifndef __WIN32

【讨论】:

    【解决方案2】:

    用于识别操作系统的宏由相关编译器定义。

    引用64-Bit Compiler:

    预定义宏

    编译器定义了以下宏来识别平台。

    Macro   Meaning
    _WIN64  A 64-bit platform.
    _WIN32  A 32-bit platform. This value is also defined by the 64-bit compiler for backward compatibility.
    _WIN16  A 16-bit platform.
    

    以下宏是特定于架构的。

    Macro    Meaning
    _M_IA64  A 64-bit Intel platform.
    _M_IX86  A 32-bit Intel platform.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-30
      • 1970-01-01
      • 2011-04-28
      相关资源
      最近更新 更多