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

dkcDLL.c

説明を見る。
00001 
00008 #include "dkcDLL.h"
00009 
00010 
00011 DKC_DLL *WINAPI dkcLoadLibrary(const char *filename){
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 }
00029 
00030 #ifdef _MSC_VER
00031 #pragma warning(disable:4054)
00032 #endif
00033 void* WINAPI dkcGetProcAddress(DKC_DLL *dll,const char *id){
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 }
00043 #ifdef _MSC_VER
00044 #pragma warning(default:4054)
00045 #endif
00046 
00047 int WINAPI dkcUnloadLibrary(DKC_DLL **pp){
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:21 2004に生成されました。 doxygen 1.3.6