
Multiple Versions of Visual C++
If you have multiple versions of Visual C++ on your computer, make sure the linker matches delayimp.lib. If there is a mismatch, you will get a linker error reporting either ___delayLoadHelper2@8 or ___delayLoadHelper@8 as an unresolved external symbol. The former implies a new linker with an old delayimp.lib, and the latter implies an old linker with a new delayimp.lib.
If you get an unresolved linker error, run dumpbin /linkermember:1 on the delayimp.lib that you expect to contain the helper function to see which helper function is defined instead. The helper function could also be defined in an object file; run dumpbin /symbols and look for delayLoadHelper(2).
If you know you have the Visual C++ 6.0 linker, then:
Run dumpbin on the delay load helper's .lib or .obj file to determine whether it defines __delayLoadHelper2. If not, the link will fail.
Define __delayLoadHelper in the delay load helper's .lib or .obj file.