Qual è il modo più semplice e sicuro per chiamare una funzione da una libreria/dll condivisa? Sono principalmente interessato a farlo su Linux, ma sarebbe meglio se esistesse un modo indipendente dalla piattaforma.Come chiamare una funzione da una libreria condivisa?
Qualcuno potrebbe fornire codice di esempio per mostrare come eseguire il seguente lavoro, in cui l'utente ha compilato la propria versione di foo
in una libreria condivisa?
// function prototype, implementation loaded at runtime:
std::string foo(const std::string);
int main(int argc, char** argv) {
LoadLibrary(argv[1]); // loads library implementing foo
std::cout << "Result: " << foo("test");
return 0;
}
BTW, so come compilare il lib condivisa (foo.so
), ho solo bisogno di sapere un modo semplice per caricarlo in fase di esecuzione.
Se lei ha citato, che header da includere su Unix/Linux ... –
Fatto nel secondo blocco di codice. – vladr
Che dire del nome della funzione mangling in C++, non complicherebbe le cose? Inoltre, hai sbagliato a digitare le finestre qui '#include' –
sbk