Principalmente per una questione di ordine, poi perché ho degli header files che sono strettamente riservati ai source files senza che debbano essere visibili esternamente.
Per essere più modulare possibile e ridurre i tempi di compilazione.Perche' non hai fatto un lib.h con gli include di tutti i .h?
A volte mi basta aggiungere un solo source file, invece degli n-files raggruppati e tutto deve filare liscio comunque. Se usassi solo il file che li raggruppa tutti potrei creare delle interdipendeze tra i files. E' solo una questione di comodità. Nessuno ti vieta di scrivere un enorme file.cpp buttandoci dentro tutto il codice e aggiungendo man mano in coda.Ma anche senza controllarli singolarmente, che non saprei come fare, non me ne accorgo comunque durante la compilazione degli errori, e coi messaggi che da il compilatore capisco dove sta l'errore, e lo vado a correggere, o mi manca qualche pezzo?
La cosa veramente importante è inserire il file.cpp dentro il progetto (qualcosa del tipo add to project) e che il (o gli) header files siano visibili al compilatore.
Si potrebbe scrivere un intero capitolo sulla questione. A ogni modo le DLL si usano (in genere) quando applicativi, magari scritti in linguaggi diversi, devono usare lo stesso codice per qualcosa (che so, una libreria matematica iper ottimizzata con avx e multi threading). Oppure quando serve un applicativo modulare con poche interfacce e molte implementazioni, ma non serve che si le porti dietro tutte le implementazioni....quando una porzione del programma che si vuole realizzare e' 'a se stante' e viene richiamata per una durata limitata dell'esecuzione dello stesso? Quindi faccio una dll che tanto se l'aggiorno non va ad intaccare altro e ho il vantaggio di ottimizzare l'uso della memoria?
Grazie.
Oppure anche solo per sport (non occorre debba esserci sempre un motivo).
L'unica cosa da ricordare bene sempre è che una DLL ha regole molto più stringenti rispetto al codice sorgente nativo (e il link che ho messo ne riporta alcune).
Tra l'altro è possibile usare il caricamento on demand con le DLL, però è una cosa molto delicata da maneggiare.
Insomma se per le tue esigenze immediate non reputi necessaria una DLL, fanne a meno (magari sperimenta su altri progetti meno sensibili).