2010-01-18 3 views
6

gcc를 사용하면 typeid를 사용하여 객체/변수의 유형을 요청할 때 type_info :: name 메소드와 다른 결과를 얻을 수 있습니다. 나는 조금 샅샅이 살펴 보았고, RTTI 이름은 구현에 따라 다르다는 것을 알았다.GCC의 RTTI 이름을 사용하지 못하게 할 수 있습니까?

문제는 Windows에서 반환되는 형식 이름을 얻고 싶습니다. 이 작업을 수행하는 쉬운 방법이 있습니까?

답변

1

C++ 함수 이름에는 실제로 모든 반환 및 인수 유형 정보와 클래스 및 메서드 이름이 포함됩니다. 컴파일되면 어셈블러 심볼로 작동하고 모든 유형 정보를 포함하는 표준 형식 (각 컴파일러의 표준)으로 '맹 글링 (mangled)'됩니다.

demerler이라고하는 이라고 불리는이 변환을 되돌리려면 함수 또는 프로그램을 실행해야합니다.

함수의 출력에

c++filt myoutput.txt 

를 실행 해보십시오. 이 의 실제 기호 이름을 사람이 읽을 수있는 형식으로 다시 채 웁니다.