1
0

extapp.c 838 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include <rtthread.h>
  2. #include <dlfcn.h>
  3. typedef void (*func)(void);
  4. int rt_application_init(void)
  5. {
  6. func f1, f2, f3, f4, f5;
  7. void* handle = dlopen("/mo/ext.so", RTLD_NOW);
  8. if(handle != RT_NULL)
  9. {
  10. f1= (func)dlsym(handle, "function1");
  11. f2= (func)dlsym(handle, "function2");
  12. f3= (func)dlsym(handle, "function3");
  13. f4= (func)dlsym(handle, "function4");
  14. f5= (func)dlsym(handle, "function5");
  15. if(f1 != RT_NULL) f1();
  16. else rt_kprintf("dlsym function1 failed.\n");
  17. if(f2 != RT_NULL) f2();
  18. else rt_kprintf("dlsym function2 failed.\n");
  19. if(f3 != RT_NULL) f3();
  20. else rt_kprintf("dlsym function3 failed.\n");
  21. if(f4 != RT_NULL) f4();
  22. else rt_kprintf("dlsym function4 failed.\n");
  23. if(f5 != RT_NULL) f5();
  24. else rt_kprintf("dlsym function5 failed.\n");
  25. }
  26. if(handle != RT_NULL) dlclose(handle);
  27. return 0;
  28. }