整理下微软编译器整的宏(未完成)

7 篇文章 0 订阅


_MSC_VER

定义编译器的版本,VC6就是1200  
  #if   _MSC_VER   >   1000的意思就是如果编译器版本高于1000(VC++5.0)

 

#pragma   once

#pragma   once当在别的实现文件里包涵这个.h文件是只编译一次,只包含一次!

#pragma push_macro("new") 

取消先前对宏"new"的定义,恢复new的默认dingyi。

#pragma warning(push,3)

3 级警告设置入栈。可设置1-5级

#pragma message("????")   

编译时输出消息 ????
#pragma warning(disable:4001)

忽略 4001 号警告..

这部分参考链接:

http://bbs.csdn.net/topics/90075051


__super

MFC中的这东西我没找到在哪里定义的,貌似表示自己的父类?

int CProtocolTreeWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
 if (__super::OnCreate(lpCreateStruct) == -1)
     return -1; 
 return 0;
}

_WIN32_WINNT 0x0500

某天我引用shlobj.h中函数SHGetFolderPath失败,排除lib问题,原来就是shlobj.h中有源码:

#if (_WIN32_IE >= 0x0500)

SHFOLDERAPI SHGetFolderPathA(HWND hwnd, int csidl, HANDLE hToken, DWORD dwFlags, LPSTR pszPath);
SHFOLDERAPI SHGetFolderPathW(HWND hwnd, int csidl, HANDLE hToken, DWORD dwFlags, LPWSTR pszPath);

而我的MFC在stdafx.h中定义为

#ifndef _WIN32_WINNT        // Allow use of features specific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0410 

这样的例子很多。。。切记小心。。。


下面是一些C++标准宏定义。

 _ _func_ _

字符串,表示当前执行代码所在的函数名称。

_  _FILE_ _ 

字符串,表示当前文件名。

_ _LINE_ _

字符串,表示当前代码所在该文件的行数。

_ _TIME_ _ 

字符串,表示当前文件被编译的时间。格式如“Jul 11 2012”
 
_  _DATE_ _ 

字符串,表示当前文件被编译的日期。格式如“20:50:03”


USES_CONVERSION 以及A2T,T2A

加上头文件atlconv.h后,妈妈再也不用担心我在char,wchar,tchar之间的转换了!

USES_CONVERSION;
Foo(A2T("i am char"));



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值