Yep. That's pretty much it.
It's still a good idea to check dlerror() still though even though that function should always be there.
If you're using C++ then remember that the compiler will do name munging so put extern "c" { } around the function prototype.
And finally, you may need to give GCC some extra arguments when linking ("-shared -Wl,-export-dynamic" from what I remember..) to tell it to export all of the symbols so the modules can access functions built into the main program.

- Trevor