19 #ifndef INCLUDE_RCF_DYNAMICLIB_HPP 20 #define INCLUDE_RCF_DYNAMICLIB_HPP 25 #include <RCF/Config.hpp> 26 #include <RCF/Exception.hpp> 37 typedef std::shared_ptr<DynamicLib> DynamicLibPtr;
42 DynamicLib(
const std::string & dllName);
43 virtual ~DynamicLib();
53 template<
typename Pfn>
54 void loadDllFunction(Pfn & pfn,
const std::string & funcName)
57 pfn = (Pfn) GetProcAddress(mhDll, funcName.c_str());
60 DWORD dwErr = GetLastError();
61 Exception e(RcfError_DllFuncLoad, mDllName, funcName, osError(dwErr));
74 template<
typename Pfn>
75 void loadDllFunction(Pfn & pfn,
const std::string & funcName)
80 const char * szErr = dlerror();
81 RCF_UNUSED_VARIABLE(szErr);
83 pfn = (Pfn) dlsym(mhDll, funcName.c_str());
87 const char * szErr = dlerror();
92 Exception e(RcfError_UnixDllFuncLoad, mDllName, funcName, strErr);
105 #define RCF_LOAD_DLL_FUNCTION(funcName) \ 106 mDynamicLibPtr->loadDllFunction<Pfn_##funcName>(pfn_##funcName, #funcName); 108 #define RCF_LOAD_LIB_FUNCTION(funcName) \ 109 pfn_##funcName = & funcName; 113 #endif // ! INCLUDE_RCF_DYNAMICLIB_HPP Definition: AmiIoHandler.hpp:24