¿Cómo se oculta un archivo CPP y se ponen a disposición de otros solo los archivos de encabezado para que puedan usarlos sin conocer su código fuente?
Puede escribir declaraciones de funciones en archivos .h y luego compilar las partes definidas en archivos lib.
Proporcione la interfaz a sus clientes en forma de API, es decir, solo pueden vincularse al archivo lib. Puede usar su interfaz, pero la biblioteca es algo que ha sido compilado y está en formato PE que es difícil de analizar, por lo que no tienen forma de obtener el código fuente.
Por supuesto, también puedes combinar DLL y lib.
Por supuesto, también son posibles combinaciones de DLL y lib.