/usr/include/MYGUI/MyGUI_DynLib.h is in libmygui-dev 3.2.0-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | /*!
@file
@author Denis Koronchik
@author Georgiy Evmenov
@date 09/2007
*/
/*
This file is part of MyGUI.
MyGUI is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
MyGUI is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with MyGUI. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __MYGUI_DYNLIB_H__
#define __MYGUI_DYNLIB_H__
#include "MyGUI_Prerequest.h"
#include <string>
#if MYGUI_PLATFORM == MYGUI_PLATFORM_WIN32
# define MYGUI_DYNLIB_HANDLE hInstance
# define MYGUI_DYNLIB_LOAD( a ) LoadLibrary( a )
# define MYGUI_DYNLIB_GETSYM( a, b ) GetProcAddress( a, b )
# define MYGUI_DYNLIB_UNLOAD( a ) !FreeLibrary( a )
struct HINSTANCE__;
typedef struct HINSTANCE__* hInstance;
#elif MYGUI_PLATFORM == MYGUI_PLATFORM_LINUX
# define MYGUI_DYNLIB_HANDLE void*
# define MYGUI_DYNLIB_LOAD( a ) dlopen( a, RTLD_LAZY | RTLD_GLOBAL)
# define MYGUI_DYNLIB_GETSYM( a, b ) dlsym( a, b )
# define MYGUI_DYNLIB_UNLOAD( a ) dlclose( a )
#elif MYGUI_PLATFORM == MYGUI_PLATFORM_APPLE
# include <CoreFoundation/CFBundle.h>
# define MYGUI_DYNLIB_HANDLE CFBundleRef
# define MYGUI_DYNLIB_LOAD( a ) mac_loadExeBundle( a )
# define MYGUI_DYNLIB_GETSYM( a, b ) mac_getBundleSym( a, b )
# define MYGUI_DYNLIB_UNLOAD( a ) mac_unloadExeBundle( a )
#endif
namespace MyGUI
{
/*! @brief Resource holding data about a dynamic library.
@remarks
This class holds the data required to get symbols from
libraries loaded at run-time (i.e. from DLL's for so's)
*/
class MYGUI_EXPORT DynLib
{
friend class DynLibManager;
protected:
DynLib(const std::string& name);
~DynLib();
public:
/*! Load the library
*/
bool load();
/*! Unload the library
*/
void unload();
//! Get the name of the library
std::string getName(void) const;
/**
Returns the address of the given symbol from the loaded library.
@param
strName The name of the symbol to search for
@returns
If the function succeeds, the returned value is a handle to the symbol.
If the function fails, the returned value is <b>nullptr</b>.
*/
void* getSymbol( const std::string& strName ) const throw();
protected:
//! Gets the last loading error
std::string dynlibError() const;
protected:
//! Name of library
std::string mName;
//! Handle to the loaded library.
MYGUI_DYNLIB_HANDLE mInstance;
};
} // namespace MyGUI
#endif // __MYGUI_DYNLIB_H__
|