Click here to Skip to main content
14,741,791 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
uninstalling a driver messed up my machine by removing/unregistering MSXML6.dll

and now, I get this when compiling my stuff

The error happens for a win64 compilation.
file.cpp: fatal error C1083: Cannot open type library file: 'msxml6.dll': No such file or directory

the code is:
#import <msxml6.dll> named_guids no_implementation



The files are on my machine :
C:\Windows\System32\msxml6.dll
C:\Windows\System32\msxml6r.dll
C:\Windows\SysWOW64\msxml6.dll
C:\Windows\SysWOW64\msxml6r.dll
C:\Windows\winsxs\amd64_microsoft-windows-msxml60_31bf3856ad364e35_6.1.7601.17514_none_e69401b1ad75f960\msxml6.dll
C:\Windows\winsxs\amd64_microsoft-windows-msxml60_31bf3856ad364e35_6.1.7601.17514_none_e69401b1ad75f960\msxml6r.dll
C:\Windows\winsxs\amd64_microsoft-windows-msxml60_31bf3856ad364e35_6.1.7601.18431_none_e67b484dad8901b7\msxml6.dll
C:\Windows\winsxs\amd64_microsoft-windows-msxml60_31bf3856ad364e35_6.1.7601.18431_none_e67b484dad8901b7\msxml6r.dll
C:\Windows\winsxs\amd64_microsoft-windows-msxml60_31bf3856ad364e35_6.1.7601.22640_none_e6f916c8c6afa142\msxml6.dll
C:\Windows\winsxs\amd64_microsoft-windows-msxml60_31bf3856ad364e35_6.1.7601.22640_none_e6f916c8c6afa142\msxml6r.dll
C:\Windows\winsxs\wow64_microsoft-windows-msxml60_31bf3856ad364e35_6.1.7601.17514_none_f0e8ac03e1d6bb5b\msxml6.dll
C:\Windows\winsxs\wow64_microsoft-windows-msxml60_31bf3856ad364e35_6.1.7601.17514_none_f0e8ac03e1d6bb5b\msxml6r.dll
C:\Windows\winsxs\wow64_microsoft-windows-msxml60_31bf3856ad364e35_6.1.7601.18431_none_f0cff29fe1e9c3b2\msxml6.dll
C:\Windows\winsxs\wow64_microsoft-windows-msxml60_31bf3856ad364e35_6.1.7601.18431_none_f0cff29fe1e9c3b2\msxml6r.dll
C:\Windows\winsxs\wow64_microsoft-windows-msxml60_31bf3856ad364e35_6.1.7601.22640_none_f14dc11afb10633d\msxml6.dll
C:\Windows\winsxs\wow64_microsoft-windows-msxml60_31bf3856ad364e35_6.1.7601.22640_none_f14dc11afb10633d\msxml6r.dll

I'm trying to download and install the MSXML6 component, but for some reasons it does not seem to work.


http://www.microsoft.com/en-ca/download/details.aspx?id=3988[^]

I downloaded 2 installation package:
msxml6_64.msi
msxml6_SDK.msi

When I install each one of them it tells me it install successfully; but there is nothing in the "installed programs" control panel; trying to repair or uninstall (by right-clicking on the MSI file) it says that it can only be done on installed products!!!

I tried looking at suggestions on the "internets" but they all do nothing.

Any suggestions?

Thanks.

Max.
Posted
Updated 10-Feb-15 6:03am
v2
Comments
CHill60 10-Feb-15 9:32am
   
Which of the System32 or SysWOW64 dlls appears first in the PATH, LIB or /I directive? Is that the right version for the platform you are building for (64-bit and 32-bit respectively)?
Maximilien 10-Feb-15 13:28pm
   
Thanks, I believe that was the problem. all the default paths (%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem) were not in the PATH environment variables.
If you want to put that as a real answer, then I can accept it.
CHill60 11-Feb-15 6:25am
   
Done :)
TheRealSteveJudge 10-Feb-15 10:41am
   
Just an idea: What happens when you reinstall the driver you uninstalled before?
Maximilien 10-Feb-15 10:54am
   
No change. It (same code) compiles in 32bits, but not in 64 bits.
TheRealSteveJudge 10-Feb-15 11:00am
   
OK. Hopefully Richard's solution will be the remedy!

MSXML6 is included with all recent versions of Windows, so the MSI packages are unlikely to work. The download link says that the MSI files only work on:
  • Windows 2000 Service Pack 4
  • Windows Server 2003
  • Windows Server 2003 Service Pack 1
  • Windows XP Service Pack 1
  • Windows XP Service Pack 2


Try this:
  1. Open an admin command prompt;
  2. cd C:\Windows\System32\
  3. regsvr32 -u msxml6.dll
  4. regsvr32 msxml6.dll
  5. cd C:\Windows\SysWOW64\
  6. regsvr32 -u msxml6.dll
  7. regsvr32 msxml6.dll

(You need to run from both directories to re-register both the 32-bit and 64-bit versions.)

If that doesn't work, try running the system file checker: sfc /scannow
Use the System File Checker tool to repair missing or corrupted system files[^]
   
Comments
Maximilien 10-Feb-15 11:33am
   
Thanks,

All of the above does not work (well, the reg/unreg worked, but recompile my code gave the same errors in x64).
sfc did not work report anything particular (Windows Resource Protection did not find any integrity violations.)

I will reboot (probably the 50th time today) and see if it works.

(I'm still looking into CHill60 question)
Maximilien 10-Feb-15 13:29pm
   
Thanks Richard,
The issue was the PATH environment variable that was scrapped and was missing the default windows 7 paths (see Chill's answer above)
As discussed with Maximillien ... I suggested checking which of the System32 or SysWOW64 dlls appears first in the PATH, LIB or /I directive? Is that the right version for the platform you are building for (64-bit and 32-bit respectively)?

OP confirmed all the default paths (%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem) were not in the PATH environment variables.
   
Comments
TheRealSteveJudge 11-Feb-15 6:53am
   
Good idea! 5*

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)




CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900