I have a suspicion that you're not actually trying to ask what you asked.
The .dll file in your example is just a shared library. You can link against shared libraries with GCC. The only question is what you call your library:
// Stage 1: Build and link the library:
gcc -c -o mylib.o mylib.c // Compile
gcc -shared -o mylib.dll mylib.o // on Windows
gcc -shared -o libmylib.so mylib.o // on Linux etc.
The naming convention is really just a convention. Now to link your program:
// Stage 2: Build and link your application:
gcc -c o main.c main.cpp // Compile
gcc -o main main.o mylib.dll -lm -lfoo -lgdi32 // Windows
gcc -o main main.o libmylib.so -lm -lfoo // Linux
gcc -o main main.o -lmylib -lm -lfoo -L/opt/mylibs // Alternatively
So if the code is entirely in your hands, you just build the library first and then link against your project.
If you really mean that the library source code is unavailable and you only have a Windows binary, then the situation is a lot trickier. For instance, the binary formats aren't even compatible.