Difference between *.a and *.dll on Windows
assemblies
Solution
Aside: There is no defined *.a format with plain Windows development tools, unless you use a Linux-based tool chain. You're presumably referring to a static library, aka .lib in Windows.
A DLL is the equivalent of a shared library (*.so) on Unix and no, you normally can't link to a shared library/dll if the linker expects you to link against a static library.
Problem
What is the difference between `*.a` and `*.dll` on Windows? From what I understand one can package all the *.o files into a `*.a`, which is a distributable that other application can use, on Linux. But what are the difference between `*.a` and `*.dll`? Are they interchangeable? If my application needs to link to `*.a`, can I link it to `*.dll` as a substitute?