>For Win32, how about creating a single .dll file using Borland c++ 4.5? Is it better to use a .dll file?
That depends on what you trying to accomplish. A LIB file is used strictly by the linker program to create an executable file, while a DLL IS an executable file. While you can link in DLL's to an executable file, you can also load DLL's dynamically at runtime as well; You cannot do that with LIB files.
> I find that tlink32 allows using .dll/.lib (implib.exe converts a .dll to lib).
Implib does not actually convert the DLL to a LIB file; it creates a LIB file that allows the linker to resolve calls to exported DLL functions. You need a 32 bit linker to create 32 bit DLL files. Think of it like this: LIB files are an intermediate step to creating an executable, similar to an OBJ file, while a DLL is a final product.
DLL files allow for flexible maintenance of your programs, as you can modify the internals of a DLL function call and the program won't care one whit, as long as the function's "signature" doesn't change. A function's signature consists of its name, number of parameters and types and return type. You do not have to relink your whole project, just the individual DLL, and every program that uses the changed functions will reflect those changes. If you change part of the code contained within a LIB file, you have to relink every program that uses the changed functions to a new version in order incorporate the changes.