8 #define TAG "HWEngine Loader" |
8 #define TAG "HWEngine Loader" |
9 |
9 |
10 typedef (*HWEngine_Game)(int32_t argc, char** argv); |
10 typedef (*HWEngine_Game)(int32_t argc, char** argv); |
11 |
11 |
12 main(int argc, char *argv[]){ |
12 main(int argc, char *argv[]){ |
13 void *handle; |
13 void *handle; |
14 char *error; |
14 char *error; |
15 HWEngine_Game Game; |
15 HWEngine_Game Game; |
16 |
16 |
17 |
17 |
18 __android_log_print(ANDROID_LOG_INFO, TAG, "HWEngine being loaded"); |
18 __android_log_print(ANDROID_LOG_INFO, TAG, "HWEngine being loaded"); |
19 handle = dlopen("libhwengine.so", RTLD_NOW|RTLD_GLOBAL); |
19 handle = dlopen("libhwengine.so", RTLD_NOW|RTLD_GLOBAL); |
20 if(!handle){ |
20 if(!handle){ |
21 __android_log_print(ANDROID_LOG_INFO, TAG, dlerror()); |
21 __android_log_print(ANDROID_LOG_INFO, TAG, dlerror()); |
22 __android_log_print(ANDROID_LOG_INFO, TAG, "error dlopen"); |
22 __android_log_print(ANDROID_LOG_INFO, TAG, "error dlopen"); |
23 exit(EXIT_FAILURE); |
23 exit(EXIT_FAILURE); |
24 } |
24 } |
25 dlerror(); |
25 dlerror(); |
26 |
26 |
27 __android_log_print(ANDROID_LOG_INFO, TAG, "HWEngine successfully loaded.."); |
27 __android_log_print(ANDROID_LOG_INFO, TAG, "HWEngine successfully loaded.."); |
28 |
28 |
29 |
29 |
30 Game = (HWEngine_Game) dlsym(handle,"Game"); |
30 Game = (HWEngine_Game) dlsym(handle,"Game"); |
31 if((error = dlerror()) != NULL){ |
31 if((error = dlerror()) != NULL){ |
32 __android_log_print(ANDROID_LOG_INFO, TAG, error); |
32 __android_log_print(ANDROID_LOG_INFO, TAG, error); |
33 __android_log_print(ANDROID_LOG_INFO, TAG, "error dlsym"); |
33 __android_log_print(ANDROID_LOG_INFO, TAG, "error dlsym"); |
34 exit(EXIT_FAILURE); |
34 exit(EXIT_FAILURE); |
35 } |
35 } |
36 __android_log_print(ANDROID_LOG_INFO, TAG, "dlsym succeeded"); |
36 __android_log_print(ANDROID_LOG_INFO, TAG, "dlsym succeeded"); |
37 Game(argc, argv); |
37 Game(argc, argv); |
38 __android_log_print(ANDROID_LOG_INFO, TAG, "Game() ended"); |
38 __android_log_print(ANDROID_LOG_INFO, TAG, "Game() ended"); |
39 |
39 |
40 dlclose(handle); |
40 dlclose(handle); |
41 } |
41 } |