|
델파이에선 간단하게..
uses TypInfo;
TMyEnum = (meFirst, meSecond, meThird);
ShowMessage(GetEnumName(TypeInfo(TMyEnum), ord(meSecond)));
식으로 사용하면 잘 작동되는데..
BCB에서 저 코드를 어케 바꿔야 할지 도무지 감이 안 잡힙니다.
extern PACKAGE AnsiString __fastcall GetEnumName(PTypeInfo TypeInfo, int Value);
이렇게 선언되어 있는걸로 봐서
typedef TTypeInfo *PTypeInfo;
struct TTypeInfo
{
public:
TTypeKind Kind;
System::ShortString Name;
} ;
라는 구조체를 이용하는거 같은데..
무턱대고
GetEnumName(PTypeInfo(TMyEnum), int(meSecond));
이렇게 사용하면 안되고...([C++ Error] TMyTestCode.cpp(61): E2108 Improper use of typedef 'TMyEnum')
(에러 메시지를 봐서 코드상에 변수 선언이외에 TMyEnum 이라고 명시적으로 사용하는거 자체가 문제가 되는거 같은데...)
도무지 모르겠네여;;
|