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]

... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
5002멋쟁이7/2/201818538WPFApp에 관한 초보 질문입니다. [1]파일 다운로드1
5001김학완7/1/201818307시작하세요 C# 7.1 프로그래밍 P53쪽 질문입니다. [2]
5000레몬6/26/201820420안녕하세요 성태님 도움으로 C# 네이버 카페 스팸글 작성되면 삭제되는 프로그램을 만들었는데요..여쭤볼게 하나 있습니다. [3]
4999jt6/21/201815585검색어 입력, 엔터 > 페북 로그인창으로 이동합니다. [4]
4998개발희망6/11/201818125C# 형변환 질문있습니다! [1]
4997초보개발자6/5/201832383C++ dll C#에서 사용하는데 보호된 메모리 오류떠요 한번만 도와주세요ㅜ [1]파일 다운로드1
4996swc6/5/201818209현업에서 주로 사용하는 DB업데이트 방법 질문입니다. [1]파일 다운로드1
4993학생6/3/201816295질문 드립니다 [1]
4991최진안5/24/201816874Credential Provider 질문 [2]
4990heyg...5/21/201817025Sybase Adaptive Server Anywhere 6 버전에 대한 질문입니다. [9]
4989강한음5/18/201820123clickonce 배포 후 실행 무응답 [4]
4988C#7....5/17/201815457dynamic 키워드를 사용한 객체 핸들링에 대해서 여쭤보려고 합니다. [1]
4987포플러5/14/201818017닥터왓슨 로그 - c0000005 (액세스 위반) 분석 부탁드려도 될까요? [2]
4986익명5/14/201819859비주얼 스튜디오 wpf 프로젝트에서 어떻게 하면 exe파일과 실행에 필요한 파일들을 분리해서 정리해서 디렉토리로 묶을 수 있을까요? [4]
4985대구개발자5/7/201817330새로운 폴더만 "이름 없는 파일" 오류 [1]
4984안중언5/6/201817830교재 143page [1]
4983익명5/4/201828684(wpf) 다른 컴퓨터에서 사용하면 자꾸 ('CefSharp.Core.dll' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다)라고 떠요.ㅠㅠ [5]
4982Soul...4/27/201818263MFC ActiveX 컨트롤 안에 있는 C# ActiveX 컨트롤 포인터 얻기 [4]
4981대전박4/25/201816934WPF IValueConverter 를 구현해서 StaticResource로 사용할때요 [1]
4980대전박4/23/201818772WPF OS버전 따라 Style 적용이 안되는 프로퍼티가 있을수 있나요? [2]
4979초보개발자4/18/201823479C# 프레임워크 버전이 다른 DLL끼리의 사용 [7]파일 다운로드1
4977Soul...4/17/201818213WebBrowser 컨트롤 Script 통신 문제 [3]
4976맹가이버4/14/201819261윈도우 서비스 프로그램에서 응용프로그램 호출하는 법 [1]
4975lemo...4/11/201819604안녕하세요 네이버로그인관련 질문드립니다. [2]
4973홍길동4/6/201817347ebook 출간 계획은 없으신가요? [2]
4978홍길동4/17/201816953    답변글 [답변]: ebook 출간 계획은 없으신가요?
... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...