spBase
読み取り中…
検索中…
一致する文字列を見つけられません
動的ライブラリ

関数

void * spOpenLibrary (const char *filename)
 
void * spGetSymbolAddress (void *handle, const char *symbol)
 
void spCloseLibrary (void *handle)
 

詳解

関数詳解

◆ spOpenLibrary()

void * spOpenLibrary ( const char * filename)
extern

動的ライブラリを開きます. 環境によって,同じライブラリを複数開いたときの振る舞いが異なります. ある環境では,それらは別々のアドレス空間に読み込まれますが,別の環境では同一のアドレス空間に読み込まれます. そのため,このような違いに依存しないコードを書く必要があります.また,filenameにパス名を指定しなかった場合に,探索されるディレクトリも環境依存です.

引数
[in]filename開くライブラリの名前をヌル終端文字列で指定します.
戻り値
ライブラリのハンドルが返ります.
参照
spCloseLibrary()
各種例
openlib.c.

◆ spGetSymbolAddress()

void * spGetSymbolAddress ( void * handle,
const char * symbol )
extern

動的ライブラリが持つ関数のアドレスを得ます. 関数は,外からアクセスできる(エクスポートされている)状態でなければいけません. そのためには,動的ライブラリをコンパイルする際に,それぞれの環境における方法に従って,関数をエクスポートしておいて下さい.

引数
[in]handlespOpenLibrary() によって得られたハンドルを指定します.
[in]symbol関数の名前をヌル終端文字列で指定します.例えば,関数がfuncだった場合は, symbol を"func"とします.
戻り値
関数のアドレスが返ります.これをそのまま関数のポインタとして使用することができます.
参照
spOpenLibrary()
各種例
openlib.c.

◆ spCloseLibrary()

void spCloseLibrary ( void * handle)
extern

動的ライブラリを閉じます.

引数
[in]handlespOpenLibrary() によって得られたハンドルを指定します.
参照
spOpenLibrary()
各種例
openlib.c.