Lib and dll files are libraries that are created in the usual way, with special switches to the compiler to tell what kind of output file you want.
A lib file is a static library that is linked with your main cpp program once, at link time, to yield a self-contained exe file that needs nothing else to run. A dll (Dynamic Link Library) is linked with your main cpp application each time that application is loaded, thus "dynamic." No, there is no way a user can get at your cpp source code from either of these two kinds of libaries. A lib file is analogous to a Linux/Unix .a file; a dll is analogous to a Linux/Unix .so file.
Your source code is completely safe, with one exception:
Any global variable names or function names that are available to your main cpp application are present in the lib file and in the dll in text form. If one examines a lib file or a dll he can see these global names and function names in plain text form: only the names themselves -- just the names and nothing more.
Your sources are quite safe. You'd give out your exe file plus the dll if it were linked dynamically; or just the exe if it were linked statically, which would be my preference if I were you.
I think I'm correct in saying that. If I'm not, I am sure that someone here on SO will be happy to tell me all about it :-)
HTH