メインページ | アルファベット順一覧 | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

# dkcDLL.h

DLL wrapper [詳細]

`#include "dkcOSIndependent.h"`

dkcDLL.hのインクルード依存関係図

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

## 構成
struct | dkc_DLL
## 型定義
typedef dkc_DLL | DKC_DLL
## 関数
DKC_EXTERN DKC_DLL *WINAPI | dkcLoadLibrary (const char *filename)
| Win32APIで言うLoadLibrary
DKC_EXTERN void *WINAPI | dkcGetProcAddress (DKC_DLL *dll, const char *id)
| Win32APIで言うGetProcAddress
DKC_EXTERN int WINAPI | dkcUnloadLibrary (DKC_DLL **pp)
| Win32APIで言うFreeLibrary

## 説明

DLL wrapper

作者:
  d金魚

から:
  2004/04/26

覚え書き:
  DLL wrapper

dkcDLL.h で定義されています。

## 型定義

typedef struct dkc_DLL DKC_DLL

## 関数

DKC_EXTERN void* WINAPI dkcGetProcAddress | ( | DKC_DLL * | dll,
|  | const char * | id
| ) |

| Win32APIで言うGetProcAddress dkcDLL.c の 34 行で定義されています。 参照先 dkc_DLL::mHandle, と NULL. 参照元 dkcUnityArchiversCommand(), と load_dll().
    00034                                                            {
    00035     if(NULL==dll || NULL==dll->mHandle){
    00036         return NULL;
    00037         }
    00038 #ifdef WIN32
    00039     return (void *)GetProcAddress(dll->mHandle,id);
    00040 #else
    00041     return (void *)dlsym(dll->mHandle, id);
    00042 #endif
    00043 }

DKC_EXTERN DKC_DLL* WINAPI dkcLoadLibrary | ( | const char * | filename | ) |

| Win32APIで言うLoadLibrary dkcDLL.c の 12 行で定義されています。 参照先 dkcAllocate(), dkcFree(), dkc_DLL::mHandle, と NULL. 参照元 dkcUnityArchiversCommand(), と load_dll().
    00012                                                     {
    00013     DKC_DLL *p = NULL;
    00014     p = dkcAllocate(sizeof(DKC_DLL));
    00015     if(NULL==p) return NULL;
    00016
    00017 #ifdef WIN32
    00018     p->mHandle = LoadLibrary(filename);
    00019 #else
    00020     p->mHandle = dlopen(filename, RTLD_NOW | RTLD_GLOBAL);
    00021 #endif
    00022     if(p->mHandle == 0){
    00023         goto Error;
    00024     }
    00025     return p;
    00026 Error:
    00027     dkcFree((void **)&p);
    00028     return NULL;
    00029 }

DKC_EXTERN int WINAPI dkcUnloadLibrary | ( | DKC_DLL ** | pp | ) |

| Win32APIで言うFreeLibrary dkcDLL.c の 48 行で定義されています。 参照先 dkcFree(), と NULL. 参照元 dkcUnityArchiversCommand().
    00048                                          {
    00049     if(NULL==pp || NULL==*pp || NULL==(*pp)->mHandle){
    00050         return edk_FAILED;
    00051     }
    00052
    00053 #ifdef WIN32
    00054     FreeLibrary((*pp)->mHandle);
    00055 #else
    00056     dlclose((*pp)->mHandle);
    00057 #endif
    00058     return dkcFree((void **)pp);
    00059 }