title: How to call a function from a shared library?
body: <p>What is the easiest and safest way to call a function from a shared library / dll? I am mostly interested in doing this on linux, but it would be better if there were a platform-independent way.</p>
  
  <p>Could someone provide example code to show how to make the following work, where the user has compiled his own version of <code>foo</code> into a shared library?</p>
  
  <pre><code>// 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 &lt;&lt; "Result: " &lt;&lt; foo("test");
    return 0;
  }
  </code></pre>
  
  <p>BTW, I know how to compile the shared lib (<code>foo.so</code>), I just need to know an easy way to load it at runtime.</p>