Many Windows programmers use DLLs abundantly. Although dynamic linking certainly offers some advantages, it can also cause noticeable maintenance and performance setbacks. For starters, DLLs are slower than statically linked libraries. Their slowness results from the inherent complexities of locating the address of a function or a data structure at runtime. In addition, the use of DLLs may cause incompatibility problems: one machine may use an outdated version of a DLL while another machine uses the newer DLL version. Therefore, before you decide whether to use DLLs in an application you should consider all these factors. In some cases, it is likely that a statically linked executable may better serve both your and your clients.