Оглавление

Регистрация методов объекта

Регистрация производится с помощью вызова RegisterObjectMethod.
// Регистрируем метод класса
void MyClass::ClassMethod()
{
  // блабла
}

r = engine->RegisterObjectMethod("mytype", "void ClassMethod()", asMETHOD(MyClass,ClassMethod), asCALL_THISCALL); assert( r >= 0 );

Так же возможно регистрировать глобальную функцию, принимающую указатель на объект как метод класса. Это может использоваться для расширения функциональности, без изменения C++-кода класса.

// Регистрируем глобальную функцию как метод класса
void MyClass_MethodWrapper(MyClass *obj)
{
  // Доступ к объекту
  obj->DoSomething();
}

r = engine->RegisterObjectMethod("mytype", "void MethodWrapper()", asFUNCTION(MyClass_MethodWrapper), asCALL_CDECL_OBJLAST); assert( r >= 0 );

Перевод - arroy.one@gmail.com. При копировании материалов указывайте ссылку на источник.