2009-09-22 4 views
0

Visual Studio 2003에서 게임 엔진의 소스 코드를 Visual Studio 2008로 업그레이드하고 있습니다. 소스 코드를 컴파일하려고 할 때 다음 오류가 발생합니다.오류 C3867 : 인수 호출 목록이 누락되었습니다.

오류 C3867 : 'UObject :: StaticConstructor': 함수 호출 누락 된 인수 목록; (그들은 정확히 동일한 말할 필요도없이)

http://www.experts-exchange.com/Programming/Languages/CPP/Q_20756876.html에서이 코드는 다음과 같습니다

//----(IMPLEMENT_CLASS macro): 
#define IMPLEMENT_CLASS(TClass) \ 
UClass TClass::PrivateStaticClass \ 
(\ 
    EC_NativeConstructor, \ 
    sizeof(TClass), \ 
    TClass::StaticClassFlags, \ 
    TClass::Super::StaticClass(), \ 
    TClass::WithinClass::StaticClass(), \ 
    FGuid(TClass::GUID1,TClass::GUID2,TClass::GUID3,TClass::GUID4), \ 
    TEXT(#TClass)+1, \ 
    GPackage, \ 
    StaticConfigName(), \ 
    RF_Public | RF_Standalone | RF_Transient | RF_Native, \ 
    (void(*)(void*))TClass::InternalConstructor, \ 
    (void(UObject::*)())TClass::StaticConstructor \ /* ERROR ON THIS LINE */ 
); \ 
extern "C" DLL_EXPORT UClass* autoclass##TClass;\ 
DLL_EXPORT UClass* autoclass##TClass = TClass::StaticClass(); 

참고 : 다음 코드에서 멤버

에 대한 포인터를 만드는 '& UObject에서 :: StaticConstructor'를 사용

아무런 오류가 없도록 줄을 다시 써야하는지 잘 모르겠습니다.

(void(UObject::*)())TClass::StaticConstructor \ 

답변

4

오류 메시지에 모두 표시됩니다. 빠진 앰퍼샌드를 추가하십시오.

(void(UObject::*)())&TClass::StaticConstructor \ 

편집 : 나는 또한 불필요하거나 잘못된 중 하나입니다 캐스트를 제거 것입니다.

관련 문제