📄 dynalink.h
字号:
/* * dynalink.h * * Dynamic Link Library abstraction class. * * Portable Windows Library * * Copyright (c) 1993-1998 Equivalence Pty. Ltd. * * The contents of this file are subject to the Mozilla Public License * Version 1.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. * * The Original Code is Portable Windows Library. * * The Initial Developer of the Original Code is Equivalence Pty. Ltd. * * Portions are Copyright (C) 1993 Free Software Foundation, Inc. * All Rights Reserved. * * Contributor(s): ______________________________________. * * $Log: dynalink.h,v $ * Revision 1.16 2004/07/11 07:56:35 csoutheren * Applied jumbo VxWorks patch, thanks to Eize Slange * * Revision 1.15 2004/02/22 02:38:33 ykiryanov * Removed ifndef BEOS when declaring PDynalink * * Revision 1.14 2003/09/17 05:41:58 csoutheren * Removed recursive includes * * Revision 1.13 2003/09/17 01:18:02 csoutheren * Removed recursive include file system and removed all references * to deprecated coooperative threading support * * Revision 1.12 2003/05/14 00:42:32 rjongbloed * Added missing virtual keyword to PDynaLink functions. * * Revision 1.11 2003/01/24 10:21:06 robertj * Fixed issues in RTEMS support, thanks Vladimir Nesic * * Revision 1.10 2002/10/10 04:43:43 robertj * VxWorks port, thanks Martijn Roest * * Revision 1.9 2002/09/16 01:08:59 robertj * Added #define so can select if #pragma interface/implementation is used on * platform basis (eg MacOS) rather than compiler, thanks Robert Monaghan. * * Revision 1.8 2001/06/30 06:59:06 yurik * Jac Goudsmit from Be submit these changes 6/28. Implemented by Yuri Kiryanov * * Revision 1.7 2001/05/22 12:49:32 robertj * Did some seriously wierd rewrite of platform headers to eliminate the * stupid GNU compiler warning about braces not matching. * * Revision 1.6 1999/03/09 02:59:49 robertj * Changed comments to doc++ compatible documentation. * * Revision 1.5 1999/02/16 08:07:11 robertj * MSVC 6.0 compatibility changes. * * Revision 1.4 1998/09/23 06:20:29 robertj * Added open source copyright license. * * Revision 1.3 1997/06/16 13:15:52 robertj * Added function to get a dyna-link libraries name. * * Revision 1.2 1997/06/08 04:49:20 robertj * Added DLL file extension string function. * * Revision 1.1 1995/03/14 12:44:08 robertj * Initial revision * */#ifndef _PDYNALINK#define _PDYNALINK#if !defined(P_RTEMS)#ifdef P_USE_PRAGMA#pragma interface#endif/**A dynamic link library. This allows the loading at run time of code modules for use by an application. */class PDynaLink : public PObject{ PCLASSINFO(PDynaLink, PObject); public: /**@name Construction */ //@{ /**Create a new dyna-link, loading the specified module. The first, parameterless, form does load a library. */ PDynaLink(); /**Create a new dyna-link, loading the specified module. The first, parameterless, form does load a library. */ PDynaLink( const PString & name /// Name of the dynamically loadable module. ); /**Destroy the dyna-link, freeing the module. */ ~PDynaLink(); //@} /**@name Load/Unload function */ //@{ /* Open a new dyna-link, loading the specified module. @return TRUE if the library was loaded. */ virtual BOOL Open( const PString & name /// Name of the dynamically loadable module. ); /**Close the dyna-link library. */ virtual void Close(); /**Dyna-link module is loaded and may be accessed. */ virtual BOOL IsLoaded() const; /**Get the name of the loaded library. If the library is not loaded this may return an empty string. If #full# is TRUE then the full pathname of the library is returned otherwise only the name part is returned. @return String for the library name. */ virtual PString GetName( BOOL full = FALSE /// Flag for full or short path name ) const; /**Get the extension used by this platform for dynamic link libraries. @return String for file extension. */ static PString GetExtension(); //@} /**@name DLL entry point functions */ //@{ /// Primitive pointer to a function for a dynamic link module. typedef void (*Function)(); /**Get a pointer to the function in the dynamically loadable module. @return TRUE if function was found. */ BOOL GetFunction( PINDEX index, /// Ordinal number of the function to get. Function & func /// Refrence to point to function to get. ); /**Get a pointer to the function in the dynamically loadable module. @return TRUE if function was found. */ BOOL GetFunction( const PString & name, /// Name of the function to get. Function & func /// Refrence to point to function to get. ); //@}// Include platform dependent part of class#ifdef _WIN32#include "msos/ptlib/dynalink.h"#else#include "unix/ptlib/dynalink.h"#endif};#endif // !defined(P_RTEMS)#endif// End Of File ///////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -