이 질문의 출처에 대해 조금 알려 드리겠습니다. 나는 심각한 엔진 2에서 작동하는 1 인칭 슈팅 게임 인 Serious Sam 2 SDK를 가지고 놀았습니다.이 엔진은 MetaData라는 것을 소개합니다. MetaData는 엔진에서 클래스를 직렬화하고 편집기 환경에서 편집 할 수 있도록 사용됩니다 (심각한 편집기 2). 그래서, 대신 예를 들면 : 이제dll에 여분의 데이터를 저장하는 방법은 무엇입니까?
meta ver(1) class CSomeGameItem : CEntity _("Some game item")
{
public:
meta int iHealthToGive; _("Amount of health to give")
}
을 수준을 할 때, 당신은 "일부 게임 아이템"개체를 삽입 할 수 있습니다 편집기에 표시되지 않습니다
class CSomeGameItem : CEntity
{
public:
int iHealthToGive;
}
, 당신은 할 것 레벨에 추가하고 속성 하나를 편집하십시오. 이제는 Croteam (게임 및 엔진 개발자)이 클래스 및 해당 변수에 대한 추가 정보를 dll 파일에 삽입하여이 메타 데이터 시스템을 가능하게 만드는 추가 컴파일러 (Mdc, 메타 데이터 컴파일러)를 사용하고 있음을 알고 있습니다. 사람들이 어떻게했는지에 대한 단서가 있습니까?
아, btw, 메타, ver() 및 _() 키워드는 코드에서 아무 것도 #define하지 않으므로 "일반"컴파일러가 무시합니다.