亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? cplgetsymbol.cpp

?? mitab,讀取MapInfo的地圖文件
?? CPP
字號(hào):
/******************************************************************************
 * $Id: cplgetsymbol.cpp 10646 2007-01-18 02:38:10Z warmerdam $
 *
 * Project:  Common Portability Library
 * Purpose:  Fetch a function pointer from a shared library / DLL.
 * Author:   Frank Warmerdam, warmerdam@pobox.com
 *
 ******************************************************************************
 * Copyright (c) 1999, Frank Warmerdam
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 ****************************************************************************/

#include "cpl_conv.h"

CPL_CVSID("$Id: cplgetsymbol.cpp 10646 2007-01-18 02:38:10Z warmerdam $");

/* ==================================================================== */
/*                  Unix Implementation                                 */
/* ==================================================================== */
#if defined(HAVE_DLFCN_H)

#define GOT_GETSYMBOL

#include <dlfcn.h>

/************************************************************************/
/*                            CPLGetSymbol()                            */
/************************************************************************/

/**
 * Fetch a function pointer from a shared library / DLL.
 *
 * This function is meant to abstract access to shared libraries and
 * DLLs and performs functions similar to dlopen()/dlsym() on Unix and
 * LoadLibrary() / GetProcAddress() on Windows.
 *
 * If no support for loading entry points from a shared library is available
 * this function will always return NULL.   Rules on when this function
 * issues a CPLError() or not are not currently well defined, and will have
 * to be resolved in the future.
 *
 * Currently CPLGetSymbol() doesn't try to:
 * <ul>
 *  <li> prevent the reference count on the library from going up
 *    for every request, or given any opportunity to unload      
 *    the library.                                            
 *  <li> Attempt to look for the library in non-standard         
 *    locations.                                              
 *  <li> Attempt to try variations on the symbol name, like      
 *    pre-prending or post-pending an underscore.
 * </ul>
 * 
 * Some of these issues may be worked on in the future.
 *
 * @param pszLibrary the name of the shared library or DLL containing
 * the function.  May contain path to file.  If not system supplies search
 * paths will be used.
 * @param pszSymbolName the name of the function to fetch a pointer to.
 * @return A pointer to the function if found, or NULL if the function isn't
 * found, or the shared library can't be loaded.
 */

void *CPLGetSymbol( const char * pszLibrary, const char * pszSymbolName )

{
    void        *pLibrary;
    void        *pSymbol;

    pLibrary = dlopen(pszLibrary, RTLD_LAZY);
    if( pLibrary == NULL )
    {
        CPLError( CE_Failure, CPLE_AppDefined,
                  "%s", dlerror() );
        return NULL;
    }

    pSymbol = dlsym( pLibrary, pszSymbolName );

#if (defined(__APPLE__) && defined(__MACH__))
    /* On mach-o systems, C symbols have a leading underscore and depending
     * on how dlcompat is configured it may or may not add the leading
     * underscore.  So if dlsym() fails add an underscore and try again.
     */
    if( pSymbol == NULL )
    {
        char withUnder[strlen(pszSymbolName) + 2];
        withUnder[0] = '_'; withUnder[1] = 0;
        strcat(withUnder, pszSymbolName);
        pSymbol = dlsym( pLibrary, withUnder );
    }
#endif

    if( pSymbol == NULL )
    {
        CPLError( CE_Failure, CPLE_AppDefined,
                  "%s", dlerror() );
        return NULL;
    }
    
    return( pSymbol );
}

#endif /* def __unix__ && defined(HAVE_DLFCN_H) */

/* ==================================================================== */
/*                 Windows Implementation                               */
/* ==================================================================== */
#if defined(WIN32) && !defined(WIN32CE)

#define GOT_GETSYMBOL

#include <windows.h>

/************************************************************************/
/*                            CPLGetSymbol()                            */
/************************************************************************/

void *CPLGetSymbol( const char * pszLibrary, const char * pszSymbolName )

{
    void        *pLibrary;
    void        *pSymbol;

    pLibrary = LoadLibrary(pszLibrary);
    if( pLibrary == NULL )
    {
        CPLError( CE_Failure, CPLE_AppDefined,
                  "Can't load requested DLL: %s", pszLibrary );
        return NULL;
    }

    pSymbol = (void *) GetProcAddress( (HINSTANCE) pLibrary, pszSymbolName );

    if( pSymbol == NULL )
    {
        CPLError( CE_Failure, CPLE_AppDefined,
                  "Can't find requested entry point: %s\n", pszSymbolName );
        return NULL;
    }
    
    return( pSymbol );
}

#endif /* def _WIN32 */

/* ==================================================================== */
/*                 Windows CE Implementation                               */
/* ==================================================================== */
#if defined(WIN32CE)

#define GOT_GETSYMBOL

#include "cpl_win32ce_api.h"

/************************************************************************/
/*                            CPLGetSymbol()                            */
/************************************************************************/

void *CPLGetSymbol( const char * pszLibrary, const char * pszSymbolName )

{
    void        *pLibrary;
    void        *pSymbol;

    pLibrary = CE_LoadLibraryA(pszLibrary);
    if( pLibrary == NULL )
    {
        CPLError( CE_Failure, CPLE_AppDefined,
                  "Can't load requested DLL: %s", pszLibrary );
        return NULL;
    }

    pSymbol = (void *) CE_GetProcAddressA( (HINSTANCE) pLibrary, pszSymbolName );

    if( pSymbol == NULL )
    {
        CPLError( CE_Failure, CPLE_AppDefined,
                  "Can't find requested entry point: %s\n", pszSymbolName );
        return NULL;
    }
    
    return( pSymbol );
}

#endif /* def WIN32CE */

/* ==================================================================== */
/*      Dummy implementation.                                           */
/* ==================================================================== */

#ifndef GOT_GETSYMBOL

/************************************************************************/
/*                            CPLGetSymbol()                            */
/*                                                                      */
/*      Dummy implementation.                                           */
/************************************************************************/

void *CPLGetSymbol(const char *pszLibrary, const char *pszEntryPoint)

{
    CPLDebug( "CPL", 
              "CPLGetSymbol(%s,%s) called.  Failed as this is stub"
              " implementation.", pszLibrary, pszEntryPoint );
    return NULL;
}
#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人免费视| 欧美日韩免费观看一区三区| 黄网站免费久久| 久久精品免费观看| 久久99久久99精品免视看婷婷| 蜜臀久久久99精品久久久久久| 日本系列欧美系列| 久久精品国产**网站演员| 喷水一区二区三区| 看片网站欧美日韩| 国产一区二区三区免费观看| 国产美女在线精品| 成人性视频网站| 色婷婷亚洲综合| 欧美乱熟臀69xxxxxx| 日韩欧美在线网站| 欧美韩国日本综合| 亚洲另类色综合网站| 亚洲国产人成综合网站| 午夜在线成人av| 久久99在线观看| 国产成人av电影在线播放| 91在线国内视频| 色哟哟一区二区在线观看| 欧美精品精品一区| 久久久久久久久久看片| 国产精品不卡一区| 亚洲国产综合91精品麻豆| 美女脱光内衣内裤视频久久影院| 国产一二三精品| 91在线一区二区三区| 91精品国产综合久久精品图片| 精品精品国产高清一毛片一天堂| 亚洲国产精品精华液2区45| 亚洲精品亚洲人成人网在线播放| 午夜电影一区二区三区| 国产一区在线不卡| 91免费版pro下载短视频| 欧美日韩高清影院| 韩国成人精品a∨在线观看| 国产+成+人+亚洲欧洲自线| 色综合久久中文字幕| 欧美一区二区三区思思人| 日本一区二区在线不卡| 亚洲不卡在线观看| 国产精品一级片| 欧美私人免费视频| www成人在线观看| 亚洲一区二区偷拍精品| 国精产品一区一区三区mba桃花| 色素色在线综合| 精品对白一区国产伦| 亚洲欧美日韩综合aⅴ视频| 久久成人久久鬼色| 91美女片黄在线| 日韩欧美另类在线| 亚洲欧美另类在线| 国产一区日韩二区欧美三区| 91黄色小视频| 国产精品毛片a∨一区二区三区| 日本欧美久久久久免费播放网| 不卡视频一二三四| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 麻豆91在线观看| 日本二三区不卡| 国产亚洲精品bt天堂精选| 亚洲成va人在线观看| youjizz久久| 日韩欧美色电影| 性做久久久久久免费观看| 国产69精品久久久久毛片 | 亚洲成年人网站在线观看| 成人黄色电影在线| 欧美mv日韩mv国产网站app| 亚洲一区在线观看视频| 成人a级免费电影| 精品国产91乱码一区二区三区| 亚洲国产美女搞黄色| av一区二区久久| 国产日韩欧美高清在线| 精品在线视频一区| 日韩亚洲欧美成人一区| 亚洲福利视频导航| 色吧成人激情小说| 亚洲人成网站影音先锋播放| 国产成人小视频| 精品免费视频一区二区| 麻豆成人久久精品二区三区红| 91精品国产综合久久久久久久 | 国产精品18久久久久久久久 | 亚洲美女精品一区| www.日韩大片| 国产精品久久久久影院亚瑟| 国产激情精品久久久第一区二区 | 亚洲一区二区中文在线| 97精品国产97久久久久久久久久久久| 久久先锋影音av鲁色资源| 轻轻草成人在线| 91精品国产乱| 日本不卡1234视频| 欧美一区二区三区喷汁尤物| 日本不卡在线视频| 日韩免费高清电影| 韩国女主播一区二区三区| 精品999在线播放| 国产精品一区一区| 国产午夜亚洲精品午夜鲁丝片| 国产精品888| 国产精品福利一区二区三区| 91原创在线视频| 亚洲一区二区三区美女| 欧美日韩一区小说| 日本不卡视频在线| 久久久亚洲精品一区二区三区| 国产一区二区福利视频| 国产视频一区不卡| 色综合久久久久综合体| 亚洲综合在线观看视频| 欧美偷拍一区二区| 久久国产婷婷国产香蕉| 久久久久久夜精品精品免费| 成人性生交大片| 一区二区在线观看免费| 67194成人在线观看| 极品少妇一区二区| 国产精品久久久久久久久免费樱桃 | 国产网站一区二区三区| bt欧美亚洲午夜电影天堂| 亚洲精品ww久久久久久p站| 欧美日韩午夜在线视频| 激情综合色丁香一区二区| 欧美国产精品一区| 欧美天天综合网| 精品影院一区二区久久久| 国产精品网站导航| 欧美在线小视频| 国产一区二区三区免费看| 亚洲色图视频免费播放| 91精品国产高清一区二区三区蜜臀| 久久国产福利国产秒拍| 国产精品久久久久影院色老大| 欧美日韩一区不卡| 国产乱人伦精品一区二区在线观看| 亚洲欧美另类久久久精品2019| 4hu四虎永久在线影院成人| 国产成人日日夜夜| 亚洲自拍另类综合| 久久久天堂av| 欧美专区日韩专区| 国产剧情一区二区| 亚洲一区二区三区四区在线免费观看 | 极品销魂美女一区二区三区| 中文字幕一区二区在线播放| 欧美精品日韩一区| 国产a久久麻豆| 亚洲bt欧美bt精品| 中文字幕av一区 二区| 欧美日韩国产系列| 成人免费视频一区| 日韩av不卡在线观看| 日韩美女视频一区二区 | 亚洲国产激情av| 日韩三级视频在线观看| 91国在线观看| 国产suv精品一区二区883| 日韩vs国产vs欧美| 亚洲精品国产a久久久久久| 2020国产精品久久精品美国| 欧美视频一区二区在线观看| 成人亚洲精品久久久久软件| 久久99这里只有精品| 亚洲v日本v欧美v久久精品| √…a在线天堂一区| 久久久久久久久99精品| 91麻豆精品国产91久久久更新时间| 91免费在线看| 国产精品资源网| 男女激情视频一区| 亚洲超丰满肉感bbw| 亚洲免费观看高清完整版在线观看熊| 久久久久久久久久电影| 欧美成人bangbros| 91麻豆精品国产91久久久久久久久 | 麻豆91在线看| 丝袜国产日韩另类美女| 夜色激情一区二区| 亚洲欧美激情一区二区| 欧美激情一区二区三区在线| 欧美变态tickling挠脚心| 91麻豆精品国产91久久久| 精品污污网站免费看| 欧美午夜在线一二页| 在线看不卡av| 91极品美女在线| 91黄色免费版| 欧美午夜精品理论片a级按摩| 色婷婷久久久久swag精品| 99精品国产91久久久久久| 99久久精品国产网站| 白白色 亚洲乱淫|