Pascal/Delphi jest dość podobny, z grubsza są pewne różnice, kiedyś np. nie było zero terminated stringów.
Bibliotekę można na 3 sposoby załadować.
Ja bym to zrobił tak, pierwsze:
jak na windowsie jesteś wypadało by sprawdzić eksporty tej biblioteki jak nazywają się funkcje czy np. nazwy nie są np. name mangling z C++.
Pod windowsem można na przykład zrobić dumpbin.exe /exports libmysql.dll
Drugie odpaliłbym jakiś disassembler i zobaczył, jaki call convention jest akurat zastosowany w danej bibliotece, fastcall, stdcall, cdecl, jest to ważne bo funkcję trzeba z daną konwencją wywołać.
Można np. jakiś program z C podejrzeć jak wywołuje daną funkcję, czasem gdzieś wygooglujesz jak poszukasz.
Jeśli jest fastcall to parametry do funkcji będą umieszczone w rejestrach jeśli stdcall to stos itp.
Następnie jeśli to windows używasz np. LoadLibrary na libmysql.dll potem zwrócony uchwyt używasz żeby dostać daną funkcję GetProcAddress z danym uchwytem i nazwą funkcji.
Nazwy funkcji masz z eksportów libmysql.dll tym dumpbin, możesz też z dokumentacji do C tej biblioteki po prostu patrzeć na nazwę funkcji i parametry.
Bierzesz jakiś example z C, za pomocą GetProcAddress wyciągasz wszystkie adresy funkcji jakie są potrzebne.
Dajesz im makrem preprocesora odpowiednią konwencje wywołań fastcall/stdcall/cdecl.
Normalnie uruchamiasz i jak jakieś błędy będą.
To debugerem najlepiej GDB/x64dbg, breakpoint dajesz przed wywołaniem funkcji, po prostu patrzysz jak są parametry wrzucane przed wywołaniem funkcji z tej biblioteki, ogólnie patrzysz gdzie się wywaliło, jaki był problem jeśli jakiś wystąpi.
Jeśli jakaś funkcja będzie przyjmować stringa, to musisz przekazać zero-terminated string, czyli stringa kończącego się z zerem inaczej gdzieś ci się wywali program błędem i nie podajesz obiektu, a zwykły adres tablicy w pamięci do tego ciągu znaków.