No es necesario el DllEntryPoint 
Por ejemplo
Codigo que llama a la lib creada
y el codigo de la libreria
Para crear la .lib desde el .obj que crea el fasm puedes como decia eternal usar el "lib" del VC++ de la siguiente forma
y luego para linkear el .obj ( el primero , el del codigo principal ) con la libreria puedes linkear con el link de VC++ de la siguiente manera

Por ejemplo
Codigo que llama a la lib creada
Código (asm) [Seleccionar]
format MS COFF
include 'win32ax.inc'
extrn '__imp__ExitProcess@4' as ExitProcess
extrn '_MiFuncion' as MiFuncion
public Main as '_Main'
section '.text' code readable executable
Main:
stdcall MiFuncion
stdcall dword[ExitProcess]
y el codigo de la libreria
Código (asm) [Seleccionar]
format MS COFF
include 'win32ax.inc'
extrn '__imp__MessageBoxA@16' as MessageBox:dword
public MiFuncion as '_MiFuncion'
proc MiFuncion
invoke MessageBox,HWND_DESKTOP,cadena,cadena,MB_OK
ret
cadena db "asd",0
endp
Para crear la .lib desde el .obj que crea el fasm puedes como decia eternal usar el "lib" del VC++ de la siguiente forma
Código [Seleccionar]
lib TuLibreria.obj
y luego para linkear el .obj ( el primero , el del codigo principal ) con la libreria puedes linkear con el link de VC++ de la siguiente manera
Código [Seleccionar]
link Principal.obj /entry:Main /subsystem:windows /DEFAULTLI
B:TuLibreria.lib /DEFAULTLIB:kernel32.lib /DEFAULTLIB:user32.lib