Yo sé hacerlo en C, no en C++. Si estás usando un compilador serio (digamos, Borland C++ 5.0), debes crear el proyecto como DLL y luego escribir las funciones que necesites precedidas por el modificador __export. Por ejemplo,
int __export Suma(int a, int b){
return a + b;
}
Tu Dll no necesita tener un WinMain, pues no es un programa independiente. PUEDE (si lo estimas necesario) tener una función punto de entrada, llamada DllMain o DllEntryPoint.
Si estás usando Microsoft Visual C++, el modificador es __dllexport, si mal no recuerdo.
También puedes hacer tu dll declarando tus funciones de manera normal y construyendo luego un archivo DEF que defina ciertas funciones como exportables. Un típico archivo .def sería
EXPORT
Suma Suma
Para cargar la Dll en un prorgrama, recurre a LoadLibrary y GetProcAddress.
¡Suerte!