/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * Copyright 2015 Danny Robson */ #include "library_win32.hpp" #include "win32/except.hpp" using cruft::detail::win32::library; /////////////////////////////////////////////////////////////////////////////// library::library (const std::experimental::filesystem::path &path): m_handle (LoadLibraryA (path.c_str ())) { if (!m_handle) win32::error::throw_code (); } //----------------------------------------------------------------------------- library::~library () { FreeLibrary (m_handle); } /////////////////////////////////////////////////////////////////////////////// void* library::symbol (const char *name) { return reinterpret_cast (GetProcAddress (m_handle, name)); }