Microsoft MVP성태의 닷넷 이야기
글쓴 사람
민우
홈페이지
첨부 파일
 

안녕하세요

C# 에서는 아래 코드 처럼 Type 클래스를 이용하여 객체의 메소드 이름 목록, 속성 이름 목록을 가져올 수 있는데

Type type = this.GetType();
var methods = type.GetMethods();
var fields = type.GetFields();


C++ 에서도 객체의 멤버변수이름 목록, 멤버함수 이름 목록을 가져오고싶습니다

ex)
멤버변수 : "m_width", "m_height", "n_size", ...
멤버함수 : "GetWidth", "GetHeight", "GetSize", ...


아래처럼 type_info 를 사용해보면 객체의 클래스 이름만 알수있고 멤버들은 알수 없었습니다..
const type_info& ti = typeid(ptr);
const char *name = ti.name();
const char *raw_name = ti.raw_name();

MFC의 CRuntimeClass 에서도 클래스 이름만 확인 가능하고 객체의 멤버함수들, 멤버변수들에 대한 정보는 찾을수 없었습니다..


C++ 로 객체타입 클래스의 멤버변수 목록, 멤버함수 목록을 가져오는게 가능한건지 불가능한건지도 아직 모르겠습니다..
뭔가 별도의 라이브러리를 사용해야하는건지..
가능하다면 어떤 방법이 있는지 좀 궁금합니다 ㅠㅠ












[최초 등록일: ]
[최종 수정일: 5/29/2022]


비밀번호

댓글 작성자
 



2022-05-29 11시15분
네, C++로는 불가능합니다. 왜냐하면 그와 관련된 메타데이터가 없기 때문입니다. 단지, C++의 (아마도 C++23 표준의 일부인) "Reflection Technical Specification ISO/IEC TS 23619" 실험 구문으로 추가되는 reflexpr을 구현한 C++ 컴파일러라면 어느 정도 유사하게 구현할 수 있을 것입니다.

C++ keywords: reflexpr (reflection TS)
; https://en.cppreference.com/w/cpp/keyword/reflexpr
정성태
2022-05-30 02시32분
[민우] 아.. c++11 이나 14 를 사용해야할것같은데 c++23 에서 지원하는거라면 일단 c# 으로 만들어야겠네요
고민이었는데 답변 듣고나니 후련하네요
답변감사합니다~!! ^^
[guest]

... 76  [77]  78  79  80  81  82  83  84  85  86  87  88  89  90  ...
NoWriterDateCnt.TitleFile(s)
579futu...2/16/200716148VS2005의 스마트 클라이언트에서 웹브라우저 예제 질문입니다. [1]
578정해봉2/16/200715315IE Embeded Assambly 방식에서 CAS 설정 방법 [1]
575박성민2/12/200716462COM에 데이터 보내기 질문입니다. [1]
571엔틱스2/7/200716995그냥... 질문은 아닙니다만... [2]
5682/6/200714265이런 오류 화면을 어떻게 찾아봐야 - 알아봐야 - 하는지요?파일 다운로드1
569정성태2/6/200715970    답변글 [답변]: 이런 오류 화면을 어떻게 찾아봐야 - 알아봐야 - 하는지요? [1]
570정성태2/6/200715718        답변글 [답변]: [답변]: 이런 오류 화면을 어떻게 찾아봐야 - 알아봐야 - 하는지요?
5732/8/200714694            답변글 [답변]: [답변]: [답변]: 이런 오류 화면을 어떻게 찾아봐야 - 알아봐야 - 하는지요? [1]파일 다운로드1
565한귀순2/5/200715360typed dataset 의 유용성
566정성태2/6/200717180    답변글 [답변]: typed dataset의 유용성 [1]
564정민영2/5/200715552혹시 이런 경우 보신적 있으신가 궁금합니다..^^; [2]
563창민이2/2/200715937Visual C++ COM Objects Returning Recordsets 사용에 대해.. [3]
562현석1/29/200715599C# 스마트응용장치에서 아이콘 움직이게하는거 질문요 ^^ [1]파일 다운로드1
559초보1/27/200717153급 질문 입니다. visual studio 자동 종료에 대한 질문입니다. [2]
558즈믄1/26/200716744.Net Framework v2.0에서 Winform의 Panel에 Excel파일 보여주기 [2]
556정재우1/26/200716963vista에서 smartclient의 System.Security.PermissionsRegistryPermission 에러 [1]
555dev....1/25/2007185562005 WebBrowser내에서 팝업 처리 문제 관련 질문입니다.
561정성태1/29/200721233    답변글 [답변]: 2005 WebBrowser 내에서 팝업 처리 문제 관련 질문입니다.
554sky1/23/200716944<급질문> interop 를 사용함에 있어 [2]
557sky1/26/200714189    답변글 [답변]: <급질문> interop 를 사용함에 있어
553deve...1/15/200716212오류가 나는데 도저히 모르겠네여...좀 봐주세요... [3]파일 다운로드1
551sky1/23/200715297[급질문] vb6으로 만들어진 dll 를
552정성태1/10/200716936    답변글 [답변]: [급질문] vb6으로 만들어진 dll 를 [1]
546오택성1/2/200715791스마트클라이언트 DebugIEHost.log 좀 봐 주세요. [9]
545심현철12/28/200615990ClickOnce를 이용한 SmartClient의 설치 자동화 방법에 대해서 문의를 드립니다. [1]
53912/26/200615077COM+ 자동등록 하니 속도가 영...?
... 76  [77]  78  79  80  81  82  83  84  85  86  87  88  89  90  ...