Оглавление

Автоматический враппер

Путь: /sdk/add_on/autowrapper/aswrappedcall.h

Данный заголовочный файл содержит несколько макросов и шаблонов, помогающих генерировать обертки над функциями, используя общее соглашение о вызовах.

Макросы:

#define asDECLARE_FUNCTION_WRAPPER(wrapper_name,func)
#define asDECLARE_FUNCTION_WRAPPERPR(wrapper_name,func,params,rettype)
#define asDECLARE_METHOD_WRAPPER(wrapper_name,cl,func)
#define asDECLARE_METHOD_WRAPPERPR(wrapper_name,cl,func,params,rettype)

где wrapper_name - имя функции, которую вы хотите сгенерировать, и func - указатель на оборачиваюмую функцию.

Пример

#include "aswrappedcall.h"

// The application function that we want to register
void DoSomething(std::string param1, int param2);

// Generate the wrapper for the function
asDECLARE_FUNCTION_WRAPPER(DoSomething_Generic, DoSomething);

// Registering the wrapper with AngelScript
void RegisterWrapper(asIScriptEngine *engine)
{
  int r;

  r = engine->RegisterGlobalFunction("void DoSomething(string, int)", asFUNCTION(DoSomething_Generic), asCALL_GENERIC); assert( r >= 0 );
}

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