Le DLL vengono caricate dinamicamente, ma possono essere linkate all'applicazione in 2 modi.
Il primo (link implicito) è quello indicato dalla guida che stai seguendo, ovvero compilare la applicazione con gli header e la .lib della dll, così l'applicazione determina a compile time gli entry point della dll e sa come usarla.
Finchè non mandi in esecuzione l'applicazione della dll non te ne fai nulla.
Il secondo (link esplicito) è linkare la dll a runtime dando il nome ad una funzione di sistema LoadLibrary(), che chiede al sistema operativo di caricarla e ti ritorna l'entry point della dll.
Questo però richiede di ottenere nel codice i puntatori a funzione dentro la dll, e una conoscenza più avanzata della programmazione C++.
Qui la differenza
http://msdn.microsoft.com/it-it/library/253b8k2c.aspx
Nel tuo caso, se hai compilato la dll tu stesso, hai anche gli header e la libreria statica .lib, e ricadi nel primo caso.
Altrimenti ricadi nel secondo ed il tutorial è quello sbagliato