IIRC .DEF files are only used to prevent name mangling (exported name can be corrupted, preventing calling).

All they contain is a list of function names in order, not full declarations.

A WIN32 C app I worked on required the use of .def files (as well as the .lib) to dynamically call a WIN32 C dll.