hello world fails - MSVCP80D.dll not found
- Hello,
I'm new to C++ and just installed Visual Studio 2005 Pro, Student Edition. I attempted to run the compiled Hello World! application -- the compilation was fine, but when the command window opened the error message generated was:
This application has failed to start because MSVCP80D.dll not found. Re-installing the application may fix this problem.
I did a repair/re-install by running the add or remove programs wizard to no avail. Any assistance would be appreciated.
Thanks,
Michael
Answers
- murph__ said:
"Is this as it should be?"
No problem for now. Only when you hae a large number of dependencies that may be used by other applications as well, the manifest starts playing a prominent role. If you want more details, you can read it here:
http://www.grimes.demon.co.uk/workshops/fusWSThirteen.htm It appears to me that the piece of documentation you linked is out of date. It does not take into account the changes made in 8.0 which require that the Visual C++ libraries be loaded from Windows SxS with a manifest. Please try generating the default Win32 console application. You may uncheck the precompiled header option. Try running the application and see if you get the same error. If you do not, simply replace the code in [solutionname].cpp with your own code and work away.
All Replies
- What OS are you running?
- Hello,
Thanks for replying. I'm running Windows XP Pro. It was necessary for me to to change
configuration properties|manifest tool|input and output|embed manifest
from yes to no to get the code to execute without an error. Is this as it should be?
Michael - Try adding the following path in PATH system variable
(installation drive):\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT
I'm not sure this will help you or not.
have installed some other version of visual studio after VS 2005 installtion - murph__ said:
"Is this as it should be?"
No problem for now. Only when you hae a large number of dependencies that may be used by other applications as well, the manifest starts playing a prominent role. If you want more details, you can read it here:
http://www.grimes.demon.co.uk/workshops/fusWSThirteen.htm That should not be necessary, nor should it work necessarily without some other modifications.
So, how did you generate the hello world project? Did you use the built in wizard for generating a Win32 console application? With VS 2005, dlls are installed into Windows SxS which has versioning and supercedence rules and the manifest indicates which version your app is looking for. WinSxS then checks its policies to see if it either has the version you are looking for, or a different version which is marked as superceding the version you are looking for. It sounds like either WinSxS has gotten messed up, or the manifest generation/embedding step got confused (like it was trying to embed a different filename than your generated manifest).
I'm curious - did you have any other versions of Visual Studio installed (particularly the betas or express) that might not have been successfully uninstalled? If not, do the default wizard generated applications compile and run?
Thanks,
Ben
- Mr. Anderson,
Again, thanks for replying. I tried it again, using the wizard and following the directions exactly as described in
http://msdn2.microsoft.com/en-US/library/ms235629.aspx
I used the sample code given at
http://msdn2.microsoft.com/en-US/library/ets82w6a.aspx
I tried debug|start debugging and debug|start without debugging and the same error message is generated after the console window appears:
This application has failed to start because MSVCP80D.dll not found. Re-installing the application may fix this problem.
The debug output is
'test.exe': Loaded 'C:\Documents and Settings\frood\My Documents\Visual Studio 2005\Projects\test\debug\test.exe', Symbols loaded.
'test.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', No symbols loaded.
'test.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', No symbols loaded.
Debugger:: An unhandled non-continuable STATUS_DLL_NOT_FOUND exception was thrown during process load
The program '[6060] test.exe: Native' has exited with code -1073741515 (0xc0000135).
Also, I had no previous versions of Visual Studio installed on the machine before I installed Visual Studio 2005 Pro, and, as I mentioned, I did a re-installation hoping to correct the problem. What do you suggest?
Thanks,
Michael Murphy It appears to me that the piece of documentation you linked is out of date. It does not take into account the changes made in 8.0 which require that the Visual C++ libraries be loaded from Windows SxS with a manifest. Please try generating the default Win32 console application. You may uncheck the precompiled header option. Try running the application and see if you get the same error. If you do not, simply replace the code in [solutionname].cpp with your own code and work away.
Hi,
In helping my son over the weekend, I ran into a very, very similar problem; the difference was that it was 'MSVCRT80D.dll not found'. Ultimately, I found the cause of the problem. But suffice it to say, that windows\winsxs or whatever was good, the file was NOT there. In face, I could not find the file on anywhere on his machine (or mine which has the full-blown VS 2005 on it), not could I find any reference in Microsoft's KB.
I had installed VC2005 C++ Express on his computer, for his use, along with the Platform SDK (Windows Server 2003 Platform SDK R2, which is the latest for XP SP2). I had overlooked one minor thing in the complicated directions that tell you how to install the two together. After I got the "not found", I uninstalled and went over things, inch by inch, trying the hello world each step of the way. As the instructions said, install VC++ Express first, so I retried "hello world" and it worked. Inch by inch, I'd make one small step following the directions until things quit working.
Anyway, from the instructions given in http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/ , there is a small item at the end of step 3 in the notes regarding the need to delete file "%USERPROFILE%\Local Settings\Application Data\Microsoft\VCExpress\8.0" before restarting Visual C++ Express. Unfortunately, I had overlooked this during the first installation. In doing the uninstall and reinstalling inch-by-inch, I discovered my omission. Once I deleted the file as per directions and continued the inch-by-inch reinstallation, I no longer had the missing file message.
According to windows, this appears to be a video file of some sort, but I'm just going by what Windows says is the appropriate filetype. Other than that indication, I have no knowledge of what the file might be. But getting rid of it caused the 'not found' to go away. Further, I have no idea why the presence of that file would cause the type of error I had. Perhaps one of the MS gurus can comment further on this.
Try it, maybe you'll like it. Anyway, it worked for me!
Tom
- 'Project Properties->Configuration Properties->Mainfest Tool->Input and Output->Embed Manifest'. This is set to 'YES' by default. When this is set to NO the manifest is created in the outer debug directory and the app runs fine. Interestingly the app runs fine in the release version even when the manifest is embedded.
- Mr. Anderson,
I tried your suggestion, and the problem persists. - I'm having the exact same problem.
I have had this problem for over a year tried everything sometimes my code will run sometimes this error message pops up even on the same code whats going on how do I fix it it is getting very frustrating.
- "I have had this problem for over a year tried everything sometimes my code will run sometimes this error message pops up even on the same code whats going on how do I fix it it is getting very frustrating."
I had the same problem. Should be fixed if you set Linker -> Manifest File -> Yes - If I go to
Configuration properties | manifest tool | input and output | Embed Manifest | .. and set to [YES] then it works OK. (although it complains about some MSVCP80D.dll missing!)
but if I set : PrjProperties | Linker | Manifest File | [No] then the problem re-appears
It has something to do with the file "VCComponents.dat" , created in C:\Documents and Settings\{username}\Local Settings\Application Data\Microsoft\VisualStudio\8.0\VCComponents.dat
.. if you rename that file, then the behaviour seems to change.
You can get the missing MSVCP80D.DLL from here :
C:\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT
if you install some "vcredist_x86.exe" found here : in C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86
...but my .exe file can't locate the path to that dll.
-- Can anyone make sense of this ?
The app I am compiling comes from some VS2003 origin but has been converted a long time ago to VS2005 and SHOULD work (it works on other computers), I just installed the full VS2005 on a clean PC.
Thank you
-_E - Hi
Ok this is an interesting one.
I also had the exact same problem for getting an error message "MSVCP80D.dll not found".
But here is the interesting part.
I create a win32 project, add a file and write some stuffs(i just add 1 file, main).
Now, what i do is create another project, add 1 file and copy paste the previous code in this file. I keep upgrading my code and keep creating new projects so that its easy to take reference later.
BUT the amazing things is, the 1st project runs fine and for the 2nd project I get the same error message.
Now in the 2nd project I set Embed Manifest = No, then again it runs fine. But for 1st project it was set to 'Yes'.
I've no idea why this is happening.
EDIT---------------------------------------------
just found another thing: in the 2nd project I again changed Embed Manifest = Yes, its runs fine with no error.
I really wanna know whats going on with this. Can anybody help ?
Visual Studio 2005 + SP1
Windows XP Pro + SP2
- Vibhanshu
- Edited byVibhanshu Wednesday, August 27, 2008 5:30 PMupdated
- Well what do we know, Feb 2009, I installed 2005 c++, after having used Borland C++ for years, the problem with the "msvcp80d.dll" not found still persists.
Does this mean that Microsoft has a problem with this?
The very simple line "Hello, World!" can not be put on the screen.
I typed the program in and as long as I don't edit it it runs fine, I typed the same program in under a different file name, run it, it works fine, make a change and than change it back exactly as it was and BOOM that four year old problem hit you in the face.
I tried to return the software, but the statement is "There is nothing wrong with it, you are doing something wrong!!"
Thanks
Leo

