Using ANSI-Compliant Predefined Preprocessor Macros
A sample function that uses ANSI-Compliant Predefined Preprocessor Macros:
bool CPreprocessingDlg::UseANSICompliantPredefinedMacros(void) { // Using ANSI-Compliant Predefined Preprocessor Macros TCHAR buffer[MAX_PATH]; CString m_strOutput; m_strOutput += "-- ANSI-Compliant Predefined Macros --"; m_strOutput += "\r\n"; m_strOutput += "SOURCE FILE [__FILE__]:"; m_strOutput += __FILE__; m_strOutput += "\r\n"; m_strOutput += "MODIFIED [__TIMESTAMP__]:"; m_strOutput += __TIMESTAMP__; m_strOutput += "\r\n"; m_strOutput += "COMPILED [__DATE__]:"; m_strOutput += __DATE__; m_strOutput += " at "; m_strOutput += __TIME__; m_strOutput += "\r\n"; m_strOutput += "This is line number [__LINE__]:"; swprintf_s(buffer, MAX_PATH, TEXT("%d"), __LINE__); m_strOutput += buffer; m_strOutput += "\r\n"; m_strOutput += "ANSI C/C++ Standard Conformance [__STDC__]:"; #ifdef __STDC__ swprintf_s(buffer, MAX_PATH, TEXT("%s"), TEXT("YES")); #else swprintf_s(buffer, MAX_PATH, TEXT("%s"), TEXT("NO")); #endif m_strOutput += buffer; return false; }
When the function finishes m_strOutput contains a string looking something like this:
-- ANSI-Compliant Predefined Macros -- SOURCE FILE [__FILE__]:f:\my source code\preprocessing\preprocessing\preprocessingdlg.cpp MODIFIED [__TIMESTAMP__]:Wed Nov 4 13:24:24 2009 COMPILED [__DATE__]:Nov 4 2009 at 13:24:25 This is line number [__LINE__]:184 ANSI C/C++ Standard Conformance [__STDC__]:NO