![]() |
|||||
|
00001 /* ///////////////////////////////////////////////////////////////////////// 00002 * File: unixem/dlfcn.h 00003 * 00004 * Purpose: Declaration of the dlopen, dlclose(), dlsym() and dlerror() API 00005 * functions. 00006 * 00007 * Created: 1st January 2004 00008 * Updated: 13th August 2010 00009 * 00010 * Home: http://synesis.com.au/software/ 00011 * 00012 * Copyright (c) 2004-2010, Matthew Wilson and Synesis Software 00013 * All rights reserved. 00014 * 00015 * Redistribution and use in source and binary forms, with or without 00016 * modification, are permitted provided that the following conditions are 00017 * met: 00018 * 00019 * - Redistributions of source code must retain the above copyright notice, 00020 * this list of conditions and the following disclaimer. 00021 * - Redistributions in binary form must reproduce the above copyright 00022 * notice, this list of conditions and the following disclaimer in the 00023 * documentation and/or other materials provided with the distribution. 00024 * - Neither the name(s) of Matthew Wilson and Synesis Software nor the 00025 * names of any contributors may be used to endorse or promote products 00026 * derived from this software without specific prior written permission. 00027 * 00028 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 00029 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 00030 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 00031 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 00032 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00033 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00034 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 00035 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00036 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 00037 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00038 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00039 * 00040 * ////////////////////////////////////////////////////////////////////// */ 00041 00042 00048 #ifndef SYNSOFT_UNIXEM_INCL_UNIXEM_H_DLFCN 00049 #define SYNSOFT_UNIXEM_INCL_UNIXEM_H_DLFCN 00050 00051 #ifndef UNIXEM_DOCUMENTATION_SKIP_SECTION 00052 # define SYNSOFT_UNIXEM_VER_UNIXEM_H_DLFCN_MAJOR 3 00053 # define SYNSOFT_UNIXEM_VER_UNIXEM_H_DLFCN_MINOR 0 00054 # define SYNSOFT_UNIXEM_VER_UNIXEM_H_DLFCN_REVISION 1 00055 # define SYNSOFT_UNIXEM_VER_UNIXEM_H_DLFCN_EDIT 18 00056 #endif /* !UNIXEM_DOCUMENTATION_SKIP_SECTION */ 00057 00058 /* ///////////////////////////////////////////////////////////////////////// 00059 * Includes 00060 */ 00061 00062 #include <unixem/unixem.h> 00063 #include <sys/types.h> 00064 00065 /* ////////////////////////////////////////////////////////////////////// */ 00066 00078 /* ////////////////////////////////////////////////////////////////////// */ 00079 00080 #ifndef _WIN32 00081 # error This file is only currently defined for compilation on Win32 systems 00082 #endif /* _WIN32 */ 00083 00084 /* ///////////////////////////////////////////////////////////////////////// 00085 * Constants and definitions 00086 */ 00087 00088 #define UNIXEM_RTLD_LAZY (0x00001) 00089 #define UNIXEM_RTLD_NOW (0x00002) 00091 /* ///////////////////////////////////////////////////////////////////////// 00092 * API functions 00093 */ 00094 00095 #ifdef __cplusplus 00096 extern "C" 00097 { 00098 #endif /* __cplusplus */ 00099 00109 void* unixem_dlopen( 00110 char const* moduleName 00111 , int mode 00112 ); 00113 00120 int unixem_dlclose(void* hModule); 00121 00129 void* unixem_dlsym( 00130 void* hModule 00131 , char const* symbolName 00132 ); 00133 00140 char const* unixem_dlerror(void); 00141 00142 #ifdef __cplusplus 00143 } /* extern "C" */ 00144 #endif /* __cplusplus */ 00145 00146 /* ////////////////////////////////////////////////////////////////////// */ 00147 00150 /* ////////////////////////////////////////////////////////////////////// */ 00151 00152 #endif /* SYNSOFT_UNIXEM_INCL_UNIXEM_H_DLFCN */ 00153 00154 /* ///////////////////////////// end of file //////////////////////////// */
|
UNIX Emulation for Win32 Libraries documentation © Synesis Software Pty Ltd, 2002-2010 |