Muj prvni problem je jednoduchy,na internetu pri svem "uceni" sem narazil na :
-----------------------------------------------------------------------------
#include <dlfcn.h>
#include <stdio.h>
int i = 125;
int main(int argc, char **argv) {
/* Ukazatel na interní data reprezentující načtenou knihovnu */
void *pdll;
/* Ukazatel na funkci z knihovny. */
void (*funkceZKnihovny)(void);
/* Za běhu načteme sdílenou knihovnu. */
pdll = dlopen("./libknihovna.so", RTLD_LAZY);
if (!pdll) {
puts(dlerror());
return 1;
}
/* Z knihovny získáme symbol funkceZKnihovny a ukazatel přetypujeme
na známý prototyp. "*/
funkceZKnihovny = (void (*)(void)) dlsym(pdll, "funkceZKnihovny");
if (!funkceZKnihovny) {
puts(dlerror());
dlclose(pdll);
return 2;
}
/* Zavoláme funkci z knihovny. */
funkceZKnihovny();
printf("program: i = %i\n", i);
/* Uvolníme sdílenou knihovnu. */
dlclose(pdll);
return 0;
----------------------------------------------------------------------------
viz radek:
funkceZKnihovny = (void (*)(void)) dlsym(pdll, "funkceZKnihovny");
viz pretypovani :
(void (*)(void))
- jedine co by me zajimalo k cemu je na tomto misto dobre pretypovani,kdyz funkce bude "pretypovana" uz tim ze bude ulozena do pointru ktery je deklarovan na zacatku programu v main !!!
Dekuji andering




Odpověď s citací