Somebody correct me if I'm wrong:
AFAIK DLL and EXE are compiled from C or C++. Its down from programlines to binairy which instructs the CPU and registers and all what to do. You need some kind of decompiler to get the C(++) code back. Than its possible to edit things and recompile it.
A hexeditor lets you change things on a low level as far as changing displayed text (as long as the filesize is not changed).
Look for a C/C++ decompiler. Also known as "reverse enginering"
Ehmm this is getting into the hack section BTW, but I know the purpose