Данный заголовочный файл содержит несколько макросов и шаблонов, помогающих генерировать обертки над функциями, используя общее соглашение о вызовах.
Макросы:
#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 ); }