Tengo entendido que extern "C" indica que la función es compilada al estilo de C, y no C++.
Que yo sepa, no se pueden exportar clases a DLL. Pero bueno, http://www.codeproject.com/Articles/28969/HowTo-Export-C-classes-from-a-DLL no parece coincidir. No sé si esa solución sirve en todos los compiladores, pero bueno.
Para lo de sobrecargar funciones, ya no sé. Según he mirado, puede tener que ver el archivo '.def', pero yo no lo sé utilizar. (.def with LoadLibrary())