Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Recently, I have been unable to download files because the "Save as" button did nothing. Now, I note that I can't even save something from MS Paint because the "Save as" Button does nothing too, and I cannot open anything, either. It seems that the component of windows that specifies those dialog boxes has went missing (but I don't get any error), or replaced by one that does nothing. How can I fix this? Is this a known problem? Thanks in advance.

share|improve this question
1  
The related library is comdlg32.dll, which is usually located in C:\Windows\System32\comdlg32.dll. Try doing a system check-up by running the sfc /scannow command. In case any system file is missing or corrupted, the program will try restoring it. If required, you will be prompted to insert the Windows XP installation CD to get the missing files. –  and31415 Feb 23 at 21:38
    
Also try clearing your temporary files from the system. –  QMechanic73 Feb 23 at 21:42
    
@and31415 Thank you very much for your suggestion. Unfortunately, I need administrator credentials do to that I don't have them right now, but that does help me. –  chubakueno Feb 23 at 21:45
    
@TiagoƇ. Clearing temporary files is (almost)never a bad idea, but why would it help? –  chubakueno Feb 23 at 21:45
2  
The file got replaced by an older version: the comdlg32.dll file bundled with SP3 is version 6.00.2900.5512 (276992 bytes). –  and31415 Feb 23 at 22:29

1 Answer 1

up vote 1 down vote accepted

Analysis

The Windows API functions which handles those dialog boxes are located in the comdlg32.dll library file, which is usually located in C:\Windows\System32:

The Common Dialog Box Library contains a set of dialog boxes for performing common application tasks, such as opening files, choosing color values, and printing documents.

Source: Common Dialog Box Library

In this case the file got replaced by an older version meant for Windows 9x:

Size: 176128 bytes
Version: 4.72.3510.2300

As a comparison, the following is the original file bundled with Windows XP SP3:

Size: 276992 bytes
Version: 6.00.2900.5512

This problem is called DLL stomping, and usually occurs when a program overwrites a system library with an earlier, incompatible version. Running notepad quickly confirmed it:

The procedure entry point PrintDlgExW could not be located in the dynamic link library comdlg32.dll.

Resolution

You can perform a system check-up by running the sfc /scannow command. In case any system file is missing or corrupted, the program will try restoring it. When required you will be prompted to insert the Windows XP installation CD.

Note This procedure require administrator rights.

Workaround

If you have access to a Windows XP SP3 setup media, you can get the original file by copying the COMDLG32.DL_ file inside the I386 folder. Then you have to decompress it by running the following commands from a command prompt:

cd /d "X:\Folder\containing\COMDLG32.DL_"
expand COMDLG32.DL_ comdlg32.dll

At this point you could boot any Linux live CD/DVD/USB, and then manually replace the old comdlg32.dll file with the correct one.

References

share|improve this answer
    
You got a typo in comdgl32.dll. Thank you for your help. –  chubakueno Feb 23 at 23:30
    
@chubakueno Fixed! It was in the error message; not a critical typo, at least. While I was writing the answer I took the occasion to provide additional info. Let me know if you have any other questions. –  and31415 Feb 23 at 23:35

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.