정의 된 값과 함께 모든 미리 정의 된 매크로를 덤프 할 수있는 cl.exe 옵션이 있습니까? gcc의 경우 -dM -E - </dev/null과 같은 것입니다.Microsoft C++ 미리 정의 된 매크로
8
A
답변
8
불행히도 MSVC에는이 작업을 수행하는 방법이 없다고 생각합니다.
다음 프로그램을 사용하여 '알려진'미리 정의 된 기호의 값을 덤프했습니다. 나는 속성을 부여해야합니다 (왜냐하면 나는 이것으로 생각해 내지 못했기 때문에). 그러나 나는 그것을 어디에서 얻었는지에 대한 노트를 가지고 있지 않습니다. (업데이트 : 아마도 여기에서 얻은 것 같습니다 : http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/644c12ed-e3a7-4c5a-a73a-610fcc7913ca)
#define __STR2__(x) #x
#define __STR1__(x) __STR2__(x)
#define __PPOUT__(x) "#define " #x " " __STR1__(x)
#if defined(_ATL_VER)
#pragma message(__PPOUT__(_ATL_VER ))
#endif
#if defined(_CHAR_UNSIGNED )
#pragma message(__PPOUT__(_CHAR_UNSIGNED ))
#endif
#if defined(__CLR_VER )
#pragma message(__PPOUT__(__CLR_VER ))
#endif
#if defined(__cplusplus_cli )
#pragma message(__PPOUT__(__cplusplus_cli ))
#endif
#if defined(__COUNTER__ )
#pragma message(__PPOUT__(__COUNTER__ ))
#endif
#if defined(__cplusplus )
#pragma message(__PPOUT__(__cplusplus ))
#endif
#if defined(_CPPLIB_VER )
#pragma message(__PPOUT__(_CPPLIB_VER ))
#endif
#if defined(_CPPRTTI )
#pragma message(__PPOUT__(_CPPRTTI ))
#endif
#if defined(_CPPUNWIND )
#pragma message(__PPOUT__(_CPPUNWIND ))
#endif
#if defined(_DEBUG )
#pragma message(__PPOUT__(_DEBUG ))
#endif
#if defined(_DLL )
#pragma message(__PPOUT__(_DLL ))
#endif
#if defined(__FUNCDNAME__ )
#pragma message(__PPOUT__(__FUNCDNAME__ ))
#endif
#if defined(__FUNCSIG__ )
#pragma message(__PPOUT__(__FUNCSIG__ ))
#endif
#if defined(__FUNCTION__ )
#pragma message(__PPOUT__(__FUNCTION__ ))
#endif
#if defined(_INTEGRAL_MAX_BITS )
#pragma message(__PPOUT__(_INTEGRAL_MAX_BITS ))
#endif
#if defined(_M_ALPHA )
#pragma message(__PPOUT__(_M_ALPHA ))
#endif
#if defined(_M_CEE )
#pragma message(__PPOUT__(_M_CEE ))
#endif
#if defined(_M_CEE_PURE )
#pragma message(__PPOUT__(_M_CEE_PURE ))
#endif
#if defined(_M_CEE_SAFE )
#pragma message(__PPOUT__(_M_CEE_SAFE ))
#endif
#if defined(_M_IX86 )
#pragma message(__PPOUT__(_M_IX86 ))
#endif
#if defined(_M_IA64 )
#pragma message(__PPOUT__(_M_IA64 ))
#endif
#if defined(_M_IX86_FP )
#pragma message(__PPOUT__(_M_IX86_FP ))
#endif
#if defined(_M_MPPC )
#pragma message(__PPOUT__(_M_MPPC ))
#endif
#if defined(_M_MRX000 )
#pragma message(__PPOUT__(_M_MRX000 ))
#endif
#if defined(_M_PPC )
#pragma message(__PPOUT__(_M_PPC ))
#endif
#if defined(_M_X64 )
#pragma message(__PPOUT__(_M_X64 ))
#endif
#if defined(_MANAGED )
#pragma message(__PPOUT__(_MANAGED ))
#endif
#if defined(_MFC_VER )
#pragma message(__PPOUT__(_MFC_VER ))
#endif
#if defined(_MSC_BUILD )
#pragma message(__PPOUT__(_MSC_BUILD ))
#endif
#if defined(_MSC_EXTENSIONS )
#pragma message(__PPOUT__(_MSC_EXTENSIONS ))
#endif
#if defined(_MSC_FULL_VER )
#pragma message(__PPOUT__(_MSC_FULL_VER ))
#endif
#if defined(_MSC_VER )
#pragma message(__PPOUT__(_MSC_VER ))
#endif
#if defined(__MSVC_RUNTIME_CHECKS )
#pragma message(__PPOUT__(__MSVC_RUNTIME_CHECKS ))
#endif
#if defined(_MT )
#pragma message(__PPOUT__(_MT ))
#endif
#if defined(_NATIVE_WCHAR_T_DEFINED)
#pragma message(__PPOUT__(_NATIVE_WCHAR_T_DEFINED))
#endif
#if defined(_OPENMP )
#pragma message(__PPOUT__(_OPENMP ))
#endif
#if defined(_VC_NODEFAULTLIB )
#pragma message(__PPOUT__(_VC_NODEFAULTLIB ))
#endif
#if defined(_WCHAR_T_DEFINED )
#pragma message(__PPOUT__(_WCHAR_T_DEFINED ))
#endif
#if defined(_WIN32 )
#pragma message(__PPOUT__(_WIN32 ))
#endif
#if defined(_WIN64 )
#pragma message(__PPOUT__(_WIN64 ))
#endif
#if defined(_Wp64 )
#pragma message(__PPOUT__(_Wp64 ))
#endif
void main() {}
4
나는 MSDN documentation에서 해당 옵션,하지만 비주얼 스튜디오 2008 및 2010 사용할 수 있습니다에 대한 사전 정의 된 매크로의 목록을 볼 수 없습니다.
관련 문제
- 1. MSVC의 _M_X64 미리 정의 된 매크로 설명
- 2. 예기치 않은 미리 정의 된 매크로 행동 토큰
- 3. C/C++ 멋진 매크로 정의?
- 4. 미리 정의 된 단어
- 5. C# 인쇄 화면 미리 정의 된 영역
- 6. 자신 만의 VS C++ 빌드 매크로 정의
- 7. 미리 정의 된 긴 문자열
- 8. HLSL : 미리 정의 된 변수
- 9. 미리 정의 된 그루비 변수
- 10. ANTLR, C 스타일의 매크로 정의
- 11. 정의 또는 인라인이있는 C++ 매크로?
- 12. 확장 가능한 매크로 미리 컴파일
- 13. 미리 정의 된 크기의 매트랩 저장 그림
- 14. 테스트 할 C 매크로 : "둘 이상의 정의 된 경우"
- 15. C# 미리 정의 된 문자열에 대한 정적 클래스와 구조체
- 16. 미리 정의 된 #if 기호에는 C#이 있습니까?
- 17. C++/CLI로 오프셋 된 매크로
- 18. c & C++의 매크로
- 19. 크로스 플랫폼에서의 매크로 정의
- 20. 레지스트리에서 미리 정의 된 책갈피로 데이터를 삽입하십시오.
- 21. 자바 스크립트 : 미리 정의 된 변수
- 22. Google지도에서 미리 정의 된 오버레이 사용하기
- 23. 미리 정의 된 열이있는 DataGridView에 대한 DataSet
- 24. 미리 정의 된 클래스가 저장되는 목표 C에서?
- 25. 미리 정의 된 코드로 Netbeans GUI를 구축하십시오.
- 26. Grails : 미리 정의 된 목록 재사용
- 27. .snippets에 대한 미리 정의 된 리터럴
- 28. 미리 정의 된 함수를 호출하는 jQuery
- 29. 미리 정의 된 경로에 텍스트 쓰기
- 30. WPF 파일을 미리 정의 된 디렉토리에 복사합니다.
이 솔루션으로 충분합니다. 감사 – Ganesh