Я обновляю исходный код игрового движка с Visual Studio 2003 до Visual Studio 2008. Когда я пытаюсь скомпилировать исходный код, я получаю следующую ошибку.
ошибка C3867: «UObject :: StaticConstructor»: вызов функции отсутствует в списке аргументов; используйте '& UObject :: StaticConstructor', чтобы создать указатель на член
в следующем коде:
//----(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();
Примечание. Этот фрагмент кода взят из http://www.experts -exchange.com / Программирование / Языки / CPP / Q_20756876.html (Нет необходимости говорить, что они абсолютно одинаковы)
Я не уверен, как мне переписать строку, чтобы не было ошибок.
(void(UObject::*)())TClass::StaticConstructor \