/*************************************************************************/ /* File : VxSharedLibrary.h */ /* Author : Nicolas Galinotti */ /* */ /* Virtools SDK */ /* Copyright (c) Virtools 2000, All Rights Reserved. */ /*************************************************************************/ #ifndef VXSHAREDLIBRARY_H #define VXSHAREDLIBRARY_H "$Id:$" /*********************************************************************** Summary: Utility class for loading Dlls. Remarks: Example: // To load a dll in order to retrieve a specific function and call it VxSharedLibrary Shl; INSTANCE_HANDLE DllInst = Shl.Load(DllName); // INSTANCE_HANDLE = HMODULE of win32 MyFunc = Shl.GetFunctionPtr("MyFunctionInTheDll"); MyFunc(...); shl.ReleaseLibrary(); See also: ***********************************************************************/ class VxSharedLibrary { public: // Creates an unattached VxLibrary VX_EXPORT VxSharedLibrary(); // Attaches a existing Library to a VxLibrary VX_EXPORT void Attach(INSTANCE_HANDLE LibraryHandle); // Loads the shared Library from disk VX_EXPORT INSTANCE_HANDLE Load(char *LibraryName); // Unloads the shared Library VX_EXPORT void ReleaseLibrary(); // Retrieves a function pointer from the library VX_EXPORT void* GetFunctionPtr(char *FuntioncName); protected: INSTANCE_HANDLE m_LibraryHandle; }; #endif