Принцип работы с dlopen, dlsym

Всем добрый день!

Прошу поправить меня если что-то не так понимаю. Проведена такая аналогия:

если в C++ Windows тип HISTANCE lib, то в Linux : просто void * lib. Затем если нужно загрузить библиотеку, то:

lib = dlopen ("имя библиотеки", RTLD_LAZY). Верно?

Затем нам нужно вызвать какую-нибудь функцию из этой библиотеки? Это делается с помощью dlsym. Можно более подробно объяснить синтаксис использования (лучше на примере)? В интернете написано как мы используем dlsym, если нужно просто получить адрес, а когда нам нужно передать какие-либо параметры, чтобы функция из библиотеки работала? Заранее спасибо.