fbsdk/fblibrary.h Source File
Go to the documentation of this file. 1 #ifndef _KAYDARA_LIB_H_
2 #define _KAYDARA_LIB_H_
44 #define FB_MANUAL_DLL_INIT(Name) \
45 extern void EntryPoint##Name(kFBDllOperation STARTUP); \
46 EntryPoint##Name(kFBDllLoad); \
50 #define FB_DLL_INIT(DLLNAME,STARTUP)\
51 int DummyEntryPoint##DLLNAME();\
52 static int StatEntryPoint##DLLNAME = DummyEntryPoint##DLLNAME();\
53 void EntryPoint##DLLNAME(kFBDllOperation STARTUP);\
54 int DummyEntryPoint##DLLNAME()\
56 EntryPoint##DLLNAME(kFBDllLoad);\
59 void EntryPoint##DLLNAME(kFBDllOperation STARTUP)
61 #define FB_DLL_INIT(DLLNAME,STARTUP)\
62 void EntryPoint##DLLNAME(kFBDllOperation STARTUP)
65 #if defined(KARCH_ENV_WIN32)
66 #define FB_DLL_INIT(DLLNAME,STARTUP)\
67 __declspec(dllexport) void EntryPoint##DLLNAME(kFBDllOperation STARTUP);\
68 int __stdcall DllMain(void* hinstDLL,unsigned long fdwReason, void* lpvReserved )\
72 case 1: EntryPoint##DLLNAME(kFBDllLoad); break; \
73 case 0: EntryPoint##DLLNAME(kFBDllUnLoad); break; \
77 void EntryPoint##DLLNAME(kFBDllOperation STARTUP)
78 #elif defined (KARCH_DEV_GNUC)
79 #define FB_DLL_INIT( DllName,Startup ) \
80 void EntryPoint##DllName(kFBDllOperation Startup); \
81 void __attribute__((constructor)) KdsoInit##DllName ( void ) \
83 EntryPoint##DllName(kFBDllLoad);\
85 void __attribute__ ((destructor)) KdsoDone##DllName ( void ) \
87 EntryPoint##DllName(kFBDllUnLoad);\
89 void EntryPoint##DllName(kFBDllOperation Startup)
91 #define FB_DLL_INIT( DllName,Startup ) \
92 void EntryPoint##DllName(kFBDllOperation Startup); \
93 extern "C" void KdsoInit##DllName( void ) \
95 EntryPoint##DllName(kFBDllLoad);\
97 extern "C" void KdsoDone##DllName( void ) \
99 EntryPoint##DllName(kFBDllUnLoad);\
101 class Init##DllName { public: Init##DllName () {KdsoInit##DllName (); } ~Init##DllName () {KdsoDone##DllName (); } }; \
102 static Init##DllName Flakel##DllName; \
103 void EntryPoint##DllName(kFBDllOperation Startup)
108 #define FB_EXT_INIT(libname)