メインページ | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

dkcDLL.h

DLL wrapper. [詳細]

#include "dkcOSIndependent.h"

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

Include dependency graph

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

Included by dependency graph

ソースコードを見る。

構成

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
 

参照元 dkcGetProcAddress(), dkcLoadLibrary(), と dkcUnloadLibrary().


関数

DKC_EXTERN void* WINAPI dkcGetProcAddress DKC_DLL dll,
const char *  id
 

Win32APIで言うGetProcAddress.

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

参照先 DKC_DLL, dkc_DLL::mHandle, と NULL.

00033                                                            {
00034     if(NULL==dll || NULL==dll->mHandle){
00035         return NULL;
00036         }
00037 #ifdef WIN32
00038     return (void *)GetProcAddress(dll->mHandle,id);
00039 #else
00040     return (void *)dlsym(dll->mHandle, id);
00041 #endif
00042 }

DKC_EXTERN DKC_DLL* WINAPI dkcLoadLibrary const char *  filename  ) 
 

Win32APIで言うLoadLibrary.

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

参照先 DKC_DLL, dkcAllocate(), dkcFree(), dkc_DLL::mHandle, と NULL.

00011                                                     {
00012     DKC_DLL *p = NULL;
00013     p = dkcAllocate(sizeof(DKC_DLL));
00014     if(NULL==p) return NULL;
00015 
00016 #ifdef WIN32
00017     p->mHandle = LoadLibrary(filename);
00018 #else
00019     p->mHandle = dlopen(filename, RTLD_NOW | RTLD_GLOBAL);
00020 #endif
00021     if(p->mHandle == 0){
00022         goto Error;
00023     }
00024     return p;
00025 Error:
00026     dkcFree(&p);
00027     return NULL;
00028 }

DKC_EXTERN int WINAPI dkcUnloadLibrary DKC_DLL **  pp  ) 
 

Win32APIで言うFreeLibrary.

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

参照先 DKC_DLL, dkcFree(), edk_FAILED, と NULL.

00047                                          {
00048     if(NULL==pp || NULL==*pp || NULL==(*pp)->mHandle){
00049         return edk_FAILED;
00050     }
00051 
00052 #ifdef WIN32
00053     FreeLibrary((*pp)->mHandle);
00054 #else
00055     dlclose((*pp)->mHandle);
00056 #endif
00057     return dkcFree(pp);
00058 }


dkutil_cに対してSun Jul 18 22:45:43 2004に生成されました。 doxygen 1.3.6