/* 2015 Author: Pavel Yakovlev. */ typedef struct { void *name; void *function; } export_t; typedef unsigned long long qword; typedef unsigned int dword; typedef unsigned char byte; typedef unsigned short word; #define NULL ((void*)0) #define quotess(name) #name #ifdef NO_LIBIMPORT_FUNC #define EXPORT_ export_t EXPORTS[]={ #else #define EXPORT_ export_t EXPORTS[]={{"lib_pointer_library",&lib_pointer_library}, #endif #define export(name) {LIB_NAME "." quotess(name),&name}, #define _EXPORT { NULL, NULL }}; #ifndef NO_LIBIMPORT_FUNC static struct LIBDLL_STRUCT { int (*load)(char *path); dword (*get)(char *name); }; static inline struct LIBDLL_STRUCT library; static void lib_pointer_library(dword adr1,dword adr2) { library.load = adr1; library.get = adr2; } #endif