#ifndef MODULES_H #define MODULES_H #include "formulas.h" #include "formats.h" /* Модули загружают table_lib сами Модули форматов испльзуют только эту библиотеку, то есть им этот экспорт и не нужен Модули формул используют ещё и экспорты приложения (например, при обработке перечислений ы) */ typedef struct { uint32_t version; // functions for formulas int (*get_obj_str)(); } table_exports_t; typedef struct module_t { struct module_t* next; uint32_t flags; // bitflag 0 - not using this module; 1 - using ksys_dll_t* dll; uint32_t pdata; // module context import_format_t* formats; import_formula_t* formulas; // callbacks uint32_t __stdcall (*fn_init)(table_exports_t*, char*, char*); void __stdcall (*fn_close)(uint32_t); char namespace [64]; char* dll_path; } module_t; #define MODULE_FLAG_EMMBEDED 0x80000000 #define MODULE_FLAG_BLOCKED 0x00000001 extern int module_init(char* dll_name, char* cmdline, char* namespace); extern void modules_exit(); #endif