LibraryLoader.h 435 B

1234567891011121314151617181920
  1. #pragma once
  2. namespace LibraryLoader
  3. {
  4. using handle = void;
  5. using function = void();
  6. handle *OpenLibrary(const char *name);
  7. void CloseLibrary(handle *handle);
  8. handle* GetCurrentProcessHandle();
  9. function *GetFunction(handle *handle, const char *name);
  10. template<class T>
  11. inline bool LoadSymbol(T& var, handle *handle, const char *name)
  12. {
  13. var = reinterpret_cast<T>(GetFunction(handle, name));
  14. return var != nullptr;
  15. }
  16. }