void * hb_libSymAddr( PHB_ITEM pDynLib, const char * pszSymbol ) { void * hDynLib = hb_libHandle( pDynLib ); if( hDynLib ) { #if defined( HB_OS_WIN_CE ) LPTSTR lpSymbol = hb_mbtowc( pszSymbol ); void * hFuncAddr = ( void * ) GetProcAddress( ( HMODULE ) hDynLib, lpSymbol ); hb_xfree( lpSymbol ); return hFuncAddr; #elif defined( HB_OS_WIN ) return ( void * ) GetProcAddress( ( HMODULE ) hDynLib, pszSymbol ); #elif defined( HB_OS_OS2 ) PFN pProcAddr = NULL; if( DosQueryProcAddr( ( HMODULE ) hDynLib, 0, ( PCSZ ) pszSymbol, &pProcAddr ) == NO_ERROR ) return ( void * ) pProcAddr; #elif defined( HB_HAS_DLFCN ) return dlsym( hDynLib, pszSymbol ); #elif defined( HB_CAUSEWAY_DLL ) return GetProcAddress( hDynLib, pszSymbol ); #else HB_SYMBOL_UNUSED( pszSymbol ); #endif } return NULL; }
void * hb_libSymAddr( PHB_ITEM pDynLib, const char * pszSymbol ) { void * hDynLib = hb_libHandle( pDynLib ); if( hDynLib ) { #if defined( HB_OS_WIN ) return ( void * ) GetProcAddress( ( HMODULE ) hDynLib, pszSymbol ); #elif defined( HB_OS_OS2 ) PFN pProcAddr = NULL; if( DosQueryProcAddr( ( HMODULE ) hDynLib, 0, ( PCSZ ) pszSymbol, &pProcAddr ) == NO_ERROR ) return ( void * ) pProcAddr; #elif defined( HB_HAS_DLFCN ) return dlsym( hDynLib, pszSymbol ); #else HB_SYMBOL_UNUSED( pszSymbol ); #endif } return NULL; }