If all this is in V6... I don't know settings in V7, then: Probably you have checked in project settings "Ignore default libraries". Try to add in libraries section libcd.lib (for debug builds) or libc.lib (release). The best way to detect such missing link symbols - at least for me - is to copy the offending symbol name, modify project settings to: - uncheck "Ignore default libraries" - check in Link --> Customize --> Print Progress messages and rebuild all. The linked with produce a verbose output wher you can search for the symbol. Usually, it will look like this: [Unsuccesful build] xxxxxxxx.obj : error LNK2001: unresolved external symbol _yyyyyyy [Rebuild with ignore default lib. off] Searching \.lib: Found __yyyyyyy Referenced in xxxxxxxx.obj Loaded DDDDDDDD.lib(DDDDDDDD.dll) Now you see that the missing lib is DDDDDDDD.lib; put back your project settings, add the new lib to Link section and rebuild. Usual trap libraries: - CRT: libc.lib (C), libcp.lib (C++), libcmt.lib (C multithread), libcpmt.lib (C++ MT) - msvcrt.lib (add a 'd' for debug builds, so Release uses libc.lib, Debug uses libcd.lib etc.) - COM support classes (_com_error) in comsupp.lib - Common dialogs in commdlg32.lib - shell API (shlwapi.lib) just to point some of (my :) ) usual mistakes.