Comment appeler une fonction d'une bibliothèque partagée?

Quelle est la méthode la plus simple et la plus sûre manière d'appeler une fonction d'une bibliothèque partagée /dll? Je suis surtout intéressé à le faire sur linux, mais ce serait mieux si il y avait une plate-forme indépendante.

Quelqu'un pourrait-il fournir un exemple de code pour montrer comment faire le travail suivant, où l'utilisateur a compilé sa propre version de foo dans une bibliothèque partagée?

//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, je sais comment faire pour compiler le partagé lib (foo.so), j'ai juste besoin de savoir un moyen facile de le charger au moment de l'exécution.

OriginalL'auteur Frank | 2010-03-29