zoukankan      html  css  js  c++  java
  • VS2010中属性页中,C/C++ -->预处理器定义

    如上图中,在这里,WIN32、_DEBUGE、_UNICODE等其实是一些宏定义,在这里写上这些,相当于在本工程所有的文件中都写上了:

    #define WIN32
    #define _DEBUG
    #define _UNICODE

    这样,就可以达到一个多一个同一个代码在不同的配置环境在编译的结果文件不一样,从而实现跨平台。比如,在VC中,因为要有的环境是UNICODE,有些则不是,同一份代码为了在两种环境下都可以用,那么就会有以下宏定义(其实这就是twhar.h中的代码):

    #ifdef  _UNICODE
    typedef wchar_t     TCHAR;
    #define __T(x)      L##x
    #define _T(x)       __T(x)
    #else
    #define __T(x)      x
    typedef char            TCHAR;
    #endif 

    那么,当你的环境中写了UNICODE时,这一段就会编译:

    #define __T(x)      L##x
    #define _T(x)       __T(x)

    如果没有写UNICODE,那么上面这段就不编译,而是下面这段被编译:

    #define __T(x)      x

    这样,只要你的字符串用了_T("somechar"),那么,在有UNICODE的时候,就是L"somechar";在没有UNICODE在时候,就是它本身"somechar"了。

    可以参考下这个:http://blog.csdn.net/xiliang_pan/article/details/7081395

  • 相关阅读:
    Tye exception
    DataSeeder
    angular
    认证Authentication
    MVC
    Ef Core
    工作单元
    VirtualFileSystem
    中间件
    日志
  • 原文地址:https://www.cnblogs.com/JMLiu/p/6241427.html
Copyright © 2011-2022 走看看