AFAIK this is close to impossible without significant effort. Tools like
Snowman or
Hex-Rays Decompiler can generate C/C++-like code, but
a) the result will be very far from the original source code, think more like c-like assembly code than the readable code in the released DLL sources
b) due to the fact that a release DLL/EXE doesn't come with debug symbols, at best you would get function names like abcd123()
c) these tools are mainly for analysis of existing programs, so the generated code will obviously not compile. Though they could be useful for recovering the sources of small (by small I mean just a few lines of code) programs, but in Civ4 terms it's out of question.
If a DLL has a feature but doesn't provide its source code, it's far easier to code said feature yourself than to somehow try to suffer with decompilation/disassembly. Larger mods usually provide their source code unless if they precisely don't want you to use it, so it's not like you'd be saving that much effort with decompilation anyways.
For studying the behavior of the executable (for e.g. debugging mysterious crashes happening in the EXE) you are out of luck, remember to use version control so you can go back to the last version of your DLL that did work and figure out what displeased the EXE. I believe there are other, more sophisticated ways to debug such problems as well.