1 #ifndef EXTERNALCODE_H_INCLUDED_
2 #define EXTERNALCODE_H_INCLUDED_
28 ::FreeLibrary( m_dll );
39 m_dll = ::LoadLibrary( externlib );
51 if ( m_dll != NULL && functionname != NULL )
52 return ::GetProcAddress( m_dll, functionname );
66 # define SCP_EXT_CALLCONV __cdecl
67 # ifdef SCPDLL_EXTERNAL_LIB
68 # define SCPDLL_EXTERNAL __declspec( dllexport )
70 # define SCPDLL_EXTERNAL __declspec( dllimport )
75 # define SCPDLL_DLLMAIN( ) \
76 SCP_EXTERN_C BOOL APIENTRY DllMain( HANDLE, DWORD, LPVOID ) { return TRUE; }
78 # define SCP_EXT_CALLCONV
79 # define SCPDLL_EXTERNAL
80 # define SCPDLL_DLLMAIN( )
84 # define SCP_EXTERN_C extern "C"
100 #define SCPDLL_VERSION_FUNCTION( Major, Minor, Patch ) \
101 SCP_EXTERN_C int SCPDLL_EXTERNAL SCPDLL_GetVersion( SCPDLL_Version* v ) { \
102 if ( !v ) return -1;\
103 v->major = Major; v->minor = Minor; v->patch = Patch;\
struct _SCPDLL_Version SCPDLL_Version
typedef int(SCP_EXT_CALLCONV *SCPDLL_PFVERSION)(SCPDLL_Version *)
BOOL LoadExternal(const char *externlib)
void * LoadFunction(const char *functionname)
virtual ~SCP_ExternalCode()