マイクロソフトコンパイラ全体のマクロを整理(未完了)


_MSC_VER
コンパイラのバージョンを定義します.VC 6は1200#if_です.MSC_VER>1000とは、コンパイラバージョンが1000より高い場合(VC++5.0)
 
#pragma   once
#pragma onceこれを別の実装ファイルに含める.hファイルは1回のみコンパイルされ、1回のみ含まれます!
 
__super
MFCの中のこれはどこで定義したのか見つからず、自分の親を表しているようですか?
int CProtocolTreeWnd::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (__super::OnCreate(lpCreateStruct) == -1)     return -1;  return 0;}
_WIN32_WINNT 0x0500
ある日shlobjを引用しました.h中の関数SHGetFolderPathは失敗し、lib問題を排除した.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およびA 2 T,T 2 A
ヘッダファイルを追加h後、母はもうchar、wchar、tcharの間の転換を心配する必要はありません!
USES_CONVERSION;
Foo(A2T("i am char"));