Chris@16: // dll.hpp --------------------------------------------------------------// Chris@16: Chris@16: // Copyright 2010 Vicente J. Botet Escriba Chris@16: Chris@16: // Distributed under the Boost Software License, Version 1.0. Chris@16: // See http://www.boost.org/LICENSE_1_0.txt Chris@16: Chris@16: Chris@16: #ifndef BOOST_DETAIL_WINAPI_DLL_HPP Chris@16: #define BOOST_DETAIL_WINAPI_DLL_HPP Chris@16: Chris@16: #include Chris@16: #include Chris@16: Chris@16: #ifdef BOOST_HAS_PRAGMA_ONCE Chris@16: #pragma once Chris@16: #endif Chris@16: Chris@16: namespace boost Chris@16: { Chris@16: namespace detail Chris@16: { Chris@16: namespace winapi Chris@16: { Chris@16: #if defined( BOOST_USE_WINDOWS_H ) Chris@101: typedef ::FARPROC FARPROC_; Chris@101: typedef ::NEARPROC NEARPROC_; Chris@101: typedef ::PROC PROC_; Chris@101: Chris@101: # ifdef BOOST_NO_ANSI_APIS Chris@101: using ::LoadLibraryW; Chris@101: using ::GetModuleHandleW; Chris@101: # else Chris@101: using ::LoadLibraryA; Chris@101: using ::GetModuleHandleA; Chris@101: # endif Chris@16: using ::FreeLibrary; Chris@16: using ::GetProcAddress; Chris@16: #else Chris@101: extern "C" { Chris@101: # ifdef _WIN64 Chris@101: typedef INT_PTR_ (WINAPI *FARPROC_)(); Chris@101: typedef INT_PTR_ (WINAPI *NEARPROC_)(); Chris@101: typedef INT_PTR_ (WINAPI *PROC_)(); Chris@101: # else Chris@101: typedef int (WINAPI *FARPROC_)(); Chris@101: typedef int (WINAPI *NEARPROC_)(); Chris@101: typedef int (WINAPI *PROC_)(); Chris@101: # endif // _WIN64 Chris@101: Chris@101: # ifdef BOOST_NO_ANSI_APIS Chris@101: __declspec(dllimport) HMODULE_ WINAPI Chris@101: LoadLibraryW( Chris@101: LPCWSTR_ lpFileName Chris@16: ); Chris@101: __declspec(dllimport) HMODULE_ WINAPI Chris@101: GetModuleHandleW( Chris@101: LPCWSTR_ lpFileName Chris@101: ); Chris@101: # else Chris@101: __declspec(dllimport) HMODULE_ WINAPI Chris@101: LoadLibraryA( Chris@101: LPCSTR_ lpFileName Chris@101: ); Chris@101: __declspec(dllimport) HMODULE_ WINAPI Chris@101: GetModuleHandleA( Chris@101: LPCSTR_ lpFileName Chris@101: ); Chris@101: # endif Chris@101: Chris@101: __declspec(dllimport) BOOL_ WINAPI Chris@16: FreeLibrary( Chris@16: HMODULE_ hModule Chris@16: ); Chris@101: __declspec(dllimport) FARPROC_ WINAPI Chris@16: GetProcAddress( Chris@16: HMODULE_ hModule, Chris@16: LPCSTR_ lpProcName Chris@16: ); Chris@101: } Chris@16: #endif Chris@16: } Chris@16: } Chris@16: } Chris@16: Chris@101: #endif // BOOST_DETAIL_WINAPI_DLL_HPP