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

dkcDLL.c

説明を見る。
00001 
00008 #define DKUTIL_C_DLL_C
00009 #include "dkcDLL.h"
00010 
00011 
00012 DKC_DLL *WINAPI dkcLoadLibrary(const char *filename){
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 }
00030 
00031 #ifdef _MSC_VER
00032 #pragma warning(disable:4054)
00033 #endif
00034 void* WINAPI dkcGetProcAddress(DKC_DLL *dll,const char *id){
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 }
00044 #ifdef _MSC_VER
00045 #pragma warning(default:4054)
00046 #endif
00047 
00048 int WINAPI dkcUnloadLibrary(DKC_DLL **pp){
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 }

dkutil_cに対してTue Oct 19 03:34:55 2004に生成されました。 doxygen 1.3.6