Print visual studio definitions at build-time.

Use the following code to check the values of common visual studio defines.

These defines are used inside Microsoft and other libraries. This macro can be used to print the values to the compiler output. For example, before and after certain header files are included.

#define _DEFINE_TO_STRING_(x) #x
#define _DEFINE_TO_STRING(x) _DEFINE_TO_STRING_(x)

#pragma message("_MSC_VER      is " _DEFINE_TO_STRING(_MSC_VER))
#pragma message("_MFC_VER      is " _DEFINE_TO_STRING(_MFC_VER))
#pragma message("_ATL_VER      is " _DEFINE_TO_STRING(_ATL_VER))
#pragma message("WINVER        is " _DEFINE_TO_STRING(WINVER))
#pragma message("_WIN32_WINNT  is " _DEFINE_TO_STRING(_WIN32_WINNT))
#pragma message("_WIN32_IE     is " _DEFINE_TO_STRING(_WIN32_IE))
#pragma message("NTDDI_VERSION is " _DEFINE_TO_STRING(NTDDI_VERSION)) 

// "Header file under investigation"
#include "stdafx.h"

#pragma message("_MSC_VER      is " _DEFINE_TO_STRING(_MSC_VER))
#pragma message("_MFC_VER      is " _DEFINE_TO_STRING(_MFC_VER))
#pragma message("_ATL_VER      is " _DEFINE_TO_STRING(_ATL_VER))
#pragma message("WINVER        is " _DEFINE_TO_STRING(WINVER))
#pragma message("_WIN32_WINNT  is " _DEFINE_TO_STRING(_WIN32_WINNT))
#pragma message("_WIN32_IE     is " _DEFINE_TO_STRING(_WIN32_IE))
#pragma message("NTDDI_VERSION is " _DEFINE_TO_STRING(NTDDI_VERSION)) 


Leave a comment