# EL_GetGlobalAdr

## 構文

  `#include <twl/el.h>`
  `typedef u32 ELDlld;`
  `void* EL_GetGlobalAdr( ELDlld my_dlld, const char* ent_name );`

## 引数

my_dlld | シンボルの検索対象とする動的モジュール
ent_name | アドレスを得たいシンボルの名前

## 返り値

指定した動的モジュール内に指定したシンボルが見つかった場合は、そのシンボルのアドレスを返します。
見つからなかった場合には、0 を返します。

## 説明

指定動的モジュールから指定文字列に該当するシンボルのアドレスを返します。
（引数 my_dlld に 0 を指定した場合は、リンクを試みた全ての動的モジュールを検索対象にします）
静的モジュール側から動的モジュールの関数を呼び出したい場合などは、本関数で対象の関数のアドレスを得た後に、 関数ポインタとして関数を呼び出すことになります。
静的モジュール側から動的モジュールのシンボルを参照する際にはポインタが使われ、コンパイル時に型チェックが 行われませんので、動的モジュールのヘッダファイルを確認し、本関数の返り値が正しい型のポインタに代入される ようにするなど、正しい型を確認できるようにしてください。

（例）動的モジュールのu16型変数を参照する。
`u16* dll_data_p;`
`dll_data_p = (u16*)EL_GetGlobalAdr( dlld, "dll_data");`
`OS_TPrintf( "dll_data:%d\n", *dll_data_p);`

（例）動的モジュールの関数を呼び出す。
`typedef void (*dllfunc)( u16 a)`
`dllfunc dll_func1;`
`dll_func1 = (dllfunc)EL_GetGlobalAdr( dlld, "dll_func1");`
`dll_func1( 0x1234);`

## 参照

`EL_AddStaticSym`

## 履歴

2008/07/11 ELDlldを追加
2007/08/21 初版