⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dynlib.h

📁 The library provides supports for run-time loaded plugin classes in C++
💻 H
字号:
#ifndef PILIB_H#define PILIB_H#include "platform.h"#if defined(__WINDOWS__)	#define PI_MODE	0#elif defined(__UNIX__)	//#define _GNU_SOURCE	#include <dlfcn.h>	//#define PI_MODE     (RTLD_LAZY|RTLD_LOCAL)	// Resolve symbols now, keep them local	//#define PI_MODE   (RTLD_LAZY|RTLD_GLOBAL)	// Resolve symbols when needed, make global	//#define PI_MODE   (RTLD_NOW|RTLD_GLOBAL)	// Resolve symbols now, make global    //#define OI_MODE   (RTLD_NOW|RTLD_GLOBAL|RTLD_DEEPBIND)    #define PI_MODE   	(RTLD_NOW|RTLD_LOCAL|RTLD_DEEPBIND)#else	#error Unknown platform#endif// C interfacevoid *piLoadLib(const char *pcLibName, int iMode=-1);void *piGetSymbol(void* hLib, const char *name);bool piUnload(void *hLib);// C++ wrapper#ifdef __cplusplusclass DynLib{public:	DynLib( const char *pcLibName, int iMode=-1 );	~DynLib( ){ if( m_hLib ) piUnload(m_hLib); delete [] m_name; }		void *GetSymbol( const char *name ){ return piGetSymbol(m_hLib,name); }		// Return handle to library	operator void* ();	const char *GetName(){ return m_name; }	const char *GetLastErr();		void* GetBase( const char *known_symbol );	protected:	void* m_hLib;		const char *m_err;	char *m_name;	void* m_base;	// Base address of library in mem};#endif // __cplusplus#endif // PILIB_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -