I've created a simple Win32 console application. When I try to debug it, I get the message:
"This application has failed to start because MSVCR80D.dll was not found. Re-installing the application may fix the problem."
The Release version runs fine.
Any idea as to what the problem could be
Thanks,
Jonny

msvcr80.dll not found
Joe Webb
I created the exactly same visual studio project, once on an NTFS partition and once on a FAT32 partition. On FAT32 I get this strange "msvcr80.dll was not found" error, on NTFS I don't get it....
Removing the .res file every time solves the problem, but is quite a hassle.
However, here you go, this is the automatic solution:
In the Visual Studio Project properties of the Manifest Tool, under General you can activate "Use FAT32 Work-around". Now everything works fine.
I hope, I could help others desperately looking for an easy solution.
Cheers,
Marco
r2d2
But of course my Beta2 version might be the culprit. I posted this in the hope that someone else could duplicate this pathlogical issue.
Brian
LadyAmpherion
I'm getting sporatic occurances of this problem that pop up out of the blue (i.e. no purposeful changes to my manifest nor changes to dll locations/versions.) Next time this happens, could you do a "super clean" of your project: quit the IDE, go to the command line and delete all intermediate files manually (delete the debug directory, release directory, your ncb file and your user-level project settings file.) If your manifest problem goes away (i.e. loader doesn't complain of a missing dll), then at least I can know I'm not the only one...
I have 2005 Beta 2 BTW.
This is admittably on the side of superstition, but hey, it's the month of the Jack-O-Lantern.
Brian
Arbu
Armored77
Dennis Xue
a) your console application does not have manifest. Either embedded inside or external. To check this, do the following:
`1. Check for <appname>.exe. manifest next to exe. If it is not there, it may be embedded. Go to step 2.
2. Open appname.exe in VS. See if it has RT_MANIFEST. Save it as a file and see if it has this line in it:
<assemblyIdentity type="win32" name="Microsoft.VC80.DebugCRT" version="8.0.50215.4652" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
If no RT_MANIFEST resource is present in the binary, go to step 3. If it is there, then go to step 4.
3. You are building with /manifest:no. Don't do this, it is not supported scenario. Remove this linker switch and it all should work.
4. msvcr80d.dll is not on the system. We need to know what version of VS is installed, what OS, what parts of VC++ have you selected during installations. Go ahead and file a bug on this on lab.msdn.microsoft.com.
Hope this helps,
Nikola
VC++ Team
M.Ali.Raza
If error has disappeared after you copied dlls to system32, that means that your application is built with manifest or there is not .manifest file in applicaiton local folder. You may find more information about changes made to VC++ libraries in MSDN docs http://msdn2.microsoft.com/library/bxf4ee9f(en-us,vs.80).aspx or on my blog http://blogs.msdn.com/nikolad/archive/2005/03/18/398720.aspx . Long story short, deployment model for VC++ libraries is changed in VS2005, you application needs to have WinSxS manifest file next to it or embedded inside of it to direct OS loader to a correct version of VC++ library. We have more detailed docs in latest builds of VS2005.
Thanks,
Nikola
Brent Russell
I can verify that I had the same issue. I deleted the .res file in the Debug directory, and attempted to build again, and everything was fine after that.
A bit vexing!
Myrkky
Gary Bouchard
It would be nice to have a verbose diagnostic tool that tells you after the fact why the loader chose to say msvcr80.dll (or any other dll) not found, in the same spirit as dcdiag.exe goes through domain controller configuration issues with a fine tooth comb. (If I was an expert and I had the time, I'd write one.) :)
Carl Beck
feuerste that's an excellent point (I'm "bottom posting" this reply so it will appear at the bottom of this thread) I didn't know what the "use FAT32 work-around" option was as it's not even in the online help. And the only mention of it seems to be in a Korean blog at:
http://blogs.msdn.com/bkchung/archive/2005/10/28/486086.aspx
Can someone at Microsft comment about the "use FAT32 work-around" option and in what circumstances should you use it. Is it something that affects run-time at all or is it just compile time workaround
Coconut1
kstephan
Nikola
VC++
Le Quoc Thanh
http://lab.msdn.microsoft.com/express/visualc/usingpsdk/default.aspx
When I attempt to run it I get the missing DLL. Copying the DLL into the Debug directory allows me to run it. The IDE tells me it can't open an EXE. Without the DLL, I get a DLL load exception attempting it. With the DLL copied, I get "The file cannot be opened with the selected editor. Please choose another editor." Linker command line looks like this:
/OUT:"\.exe" /NOLOGO /MANIFEST /MANIFESTFILE:"\.intermediate.manifest" /ERRORREPORT:PROMPT kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib
Curiously the manifest has this:
<assemblyIdentity type='win32' name='Microsoft.VC80.DebugCRT' version='8.0.50215.4652' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
Note the 'x86' instead of 'amd64'. Is that something new with beta2 or do I have something screwed up in my installation The IDE installed itself to my Program Files (x86) directory.