void* CClass::Create(lua_State *pState) { void* pObj = NULL; SQR_TRY { if(IsAbstract()) { ostringstream strm; strm << GetClassName() << " 是注册给lua的抽象类,不允许在lua中创建!" << endl; GenErr(strm.str().c_str()); } pObj = m_pFunCreateObj(); } SQR_CATCH(exp) { ostringstream str; str << GetClassName() << "在lua中创建对象的时候发生错误" << endl; exp.AppendMsg(str.str().c_str()); LogExp(exp); } SQR_TRY_END; return pObj; }
// SetArraySize //------------------------------------------------------------------------------ void ReflectionInfo::SetArraySize( void * array, size_t size ) const { ASSERT( IsStruct() ); ASSERT( !IsAbstract() ); SetArraySizeV( array, size ); }
// CreateStruct //------------------------------------------------------------------------------ Struct * ReflectionInfo::CreateStruct() const { ASSERT( IsStruct() ); ASSERT( !IsAbstract() ); return (Struct *)Create(); }
// CreateObject //------------------------------------------------------------------------------ RefObject * ReflectionInfo::CreateObject() const { ASSERT( IsObject() ); ASSERT( !IsAbstract() ); return (RefObject *)Create(); }