VC中常用的宏

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

VC中常用的宏

  (2010-08-29 02:49:15)
标签: 

vc

 

 

杂谈

分类: 开发
       我们在VS环境中开发的时候,会遇到很多宏定义,这些宏可以应用到代码中,或用于编译、工程选项等设置,总之是我们开发中必不可少的工具,有必要做一个总结。有些宏是C/C++定义的,有些宏是VC环境预定义的。

       1、C/C++中的宏
      
       __cplusplus   如果当前编译器为C++,该值为1。
       __DATE__   当前源码的编译日期,格式为Mmm dd yyyy。
       __TIME__   当前源码的编译时间,格式为hh:mm:ss。
       __TIMESTAMP__   当前源码文件最后被修改的日期和时间,格式为Ddd Mmm Date hh:mm:ss yyyy。
       __FILE__   当前源码文件名。
       __LINE__   当前插入点所在源码的行号。
       __FUNCTION__   当前插入点所在函数名。
       __STDC__   标识是否严格遵循ANSI C标准,编译器选项/Za被设置时该宏定义为1,表示遵循标准。     
       __VA_ARGS__   可变参数宏,用来传递可变参数表;该宏并非被所有编译器支持。
      
       2、VC中的宏
      
       _DEBUG   当我们的工程设置为debug版编译时,编译器会定义该宏;该宏与#ifdef等
                   预编译语句一起进行条件编译,以区分debug和release版本功能。
       ASSERT   断言,当该宏后面的语句值为0时引起程序中断,只在debug版中有效。
       VERIFY   与ASSERT功能类似,在debug和release版本中均有效。
       ASSERT_VALID   检查后面参数指针是否为空,只在debug版中有效。
       TRACE   格式化输出字符串信息。
       _ATL_VER   指明ATL的版本。
       _CLR_VER   指明公共运行时(common language runtime)的版本。
       _COUNTER_   一个从0开始的全局的计数器,每次用于源文件或在源文件中被引用头文件时,自动加1。
       _DLL   当工程类型为动态链接库时,该值为1。
       WINVER   指示Windows版本。
       _MFC_VER   指示MFC版本。
       _MSC_VER   指示编译器版本。
       _WIN32   为Win32和Win64程序定义。
      
       3、VC IDE预定义宏
      
       这类宏主要应用在工程属性设置中,包括名称、路径、编译等相关字符串。比如解决方案位c:\Soln\Soln.sln,项目位于c:\Soln\Proj\Proj.vcproj,中间目录为DebugInt,输出目录为c:\MyOutputs,输出名称为Game.exe时,各个宏的值依次如下。

       $(ConfigurationName)   版本名,如debug或release。
       $(PlatformName)   当前平台名,如Win32。
       $(IntDir)   中间目录名,即为中间文件指定的相对于项目目录的目录路径,值为DebugInt。
       $(OutDir)   输出文件目录的路径,值为c:\MyOutputs。
       $(DevEnvDir)   VS的安装目录。
       $(InputDir)   输入文件目录,值为c:\Soln\Proj。
       $(InputPath)   输入文件全路径名,值为c:\Soln\Proj\Proj.vcproj。
       $(InputName)   输入文件名,值为Proj。
       $(InputFileName)   输入文件名(带后缀),值为Proj.vcproj。
       $(InputExt)   输入文件扩展名,值为.vcproj。
       $(ProjectDir)   项目目录,同$(InputDir)。
       $(ProjectPath)   项目全路径名,同$(InputPath)。
       $(ProjectName)   同$(InputName)。
       $(ProjectFileName)   同$(InputFileName)。
       $(ProjectExt)   同$(ProjectExt)。
       $(SolutionDir)   解决方案目录,值为c:\Soln。
       $(SolutionPath)   解决方案路径,值为c:\Soln\Soln.sln。
       $(SolutionName)   解决方案名,值为Soln。
       $(SolutionFileName)   解决方案名(带后缀),值为Soln.sln。
       $(SolutionExt)   解决方案文件扩展名,值为.sln。
       $(TargetDir)   输出文件目录,值为c:\MyOutputs\。
       $(TargetPath)   输出文件路径名,c:\MyOutputs\Game.exe。
       $(TargetName)   输出文件名,值为Game。
       $(TargetFileName)   输出文件全名,值为Game.exe。
       $(TargetExt)   输出文件扩展名,值为.exe。
       $(VSInstallDir)   VS安装目录。
       $(VCInstallDir)   VC安装目录。
       $(FrameworkDir)   framework安装目录。
       $(FrameworkVersion)   framework版本信息。
       $(FrameworkSDKDir)   framework sdk安装目录。

vC++整理 提供一些定义,需要的人可以自己整理呀, 立即下载

相关推荐

VS软件设置中的定义

VS软件中常用定义:   说明 $(ConfigurationName) 当前项目配置的名称(例如,“Debug|Any CPU”)。 $(OutDir) 输出文件目录的路径,相对于项目目录。这解析为“输出目录”属性的值。它包括尾部的反斜杠“\”。 $(...

HelloKandy's Blog 7153

visual studio 2022 c++ c语言编译错误,添加定义解决

visual studio 定义避免程序正常但是编译错误

m0_62652709的博客 1079

VC 与预处理使用方法总结(转)

 目录(?)[-] C/C++ 预定义^ C/C++ 预定义用途:诊断与调试输出^ CRT 和 C 标准库中的^ NULL 空指针^limits.h 整数类型常量^float.h 浮点类型常量^math.h 数学常量^EOF 常量^errno.h 错误代码^locale 类别^_MAX_PATH 等文件名与路径长度限制^RAND_MAX 随机数最大值^va_arg/

zxh2075的专栏 1828

VC:使用可变参数

VC6是不支持可变参数的,VC2005支持。 使用如下: #define TRACE(pszFormat, ...) \  CTL_CommonLogger::Output(LOGGER, LEVEL_TRACE, pszFormat, __VA_ARGS__);  其中,__VA_ARGS__就是不定参数。 注意:直接这样,是没法编译通过的,因为这个要求编译器是VC2002(VC7

guoduhua的专栏 1913

VC/MFC中常用的含义

<br />VC/MFC中常用的含义<br />Visual C++ MFC 中常用的含义(转载) <br />    AND_CATCHAND_CATCH <br />AND_CATCH(exception_class,exception _object_point_name) <br />  说明:<br />  定义一个代码块,它用于获取废除当前TRY块中的附加异常类型。使用CATCH以获得一个异常类型,然后使用AND_CATCH获得随后的 异常处理代码可以访问异常对象(若合适的话)已得到关于

计算机编程开发学习交流的专栏 1396

转-VC常用

我们在VS环境中开发的时候,会遇到很多定义,这些可以应用到代码中,或用于编译、工程选项等设置,总之是我们开发中必不可少的工具,有必要做一个总结。有些是C/C++定义的,有些VC环境预定义的。     1、C/C++中的     __cplusplus  如果当前编译器为C++,该值为1。     __DATE__  当前源码的编译日期,格式为Mmm dd yyyy。     _

dragoo1的专栏 977

VC常用类、函数、

MFC中常用类,,函数介绍 常用类CRect:用来表示矩形的类,拥有四个成员变量:top left bottom right。分别表是左上角和右下角的坐标。可以通过以下的方法构造: CRect( int l, int t, int r, int b ); 指明四个坐标 CRect( const RECT& srcRect ); 由RECT结构构造 CRect( LPCRECT

Guixue 1350

学习VC MFC开发必须了解的常用和指令

1、#include指令    包含指定的文件    2、#define指令     预定义,通常用它来定义常量(包括无参量与带参量),以及用来实现那些“表面似和善、背后一长串”的,它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了  3、#typedef指令   常用来定义一个标识符及关键字的别名它是语言编译过程的一部分,但它并不实际分配内存空间。  

pengbo212的专栏 443

VC常用的含义

一、字符编码Windows即可以使用Unicode字符集又可以使用传统的字符集(如多字节编码)来实现对多种语言的支持,以适应国际市场的要求。与传统的字符集编码器相比,Unicode是世界通用的字符编码标准,使用16位数据表示一个字符,一共可以表示65535种字符。传统的字符集,如windows ANSI字符集,使用8位数据或将相邻的两个8位的数据组合...

weixin_33725515的博客 123

VC++/MFC 最常用和指令

  1、#include指令         包含指定的文件,最基本的最熟悉的指令,编程中不得不用,包含库文件用双尖括号,包含自定义头文件用双引号。    2、#define指令          预定义,通常用它来定义常量(包括无参量与带参量),以及用来实现那些“表面似和善、背后一长串”的,它本身并不在编译过程中进行,而是在预处理过程就已经完成了。        对于一个频繁使用的短小函数...

weixin_34004576的博客 278
上一篇: Close gop与Open Gop
下一篇: VS中的 MD/MT设置
fly172
博客等级 码龄18年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值