I'm using makefiles to build my project, in which all the source files
are written in C/C++. This project has already been compiled with VC7.1
and working. Now I'm trying to modify the makefiles to also use the
VC8.0
compiler to build it.
Amongst other errors, and warning, one notable error message reads as
follows:
"THIS application has failed to start because MSVCP80D.dll was not
found. Re-installing the application may fix this PROBLEM"
I do not know what's causing this problem. Is there some way to specify
in my makefiles where to find this dll? If there's some compiler
command (/something) that I could simply add to my makefile and make
this problem go away, that would be great.
Could someone please help?
Jochen Kalmbach [MVP] - 27 Feb 2006 16:40 GMT
Hi csharpdevp!
> I'm using makefiles to build my project, in which all the source files
> are written in C/C++. This project has already been compiled with VC7.1
[quoted text clipped - 7 lines]
> "THIS application has failed to start because MSVCP80D.dll was not
> found. Re-installing the application may fix this PROBLEM"
Do you have the correct manifest embedded into your EXE?

Signature
Greetings
Jochen
My blog about Win32 and .NET
http://blog.kalmbachnet.de/
csharpdevp@yahoo.ca - 28 Feb 2006 08:36 GMT
Hello
I'm not sure. Do you know how could I verify that? The project dlls are
generated without any problems. However, I also have some modules for
unit testing in my project, which use the cppUnit libraries (v1.10.2).
Specifically, when these are being executed, I get this error with the
following few lines in the cygwin bash shell:
####### starting runcpptests
make[1]: [runcpptests] Error 53 (ignored)
make[1]: [runcpptests] Error 53 (ignored)
make[1]: [runcpptests] Error 53 (ignored)
make[1]: [runcpptests] Error 53 (ignored)
make[1]: [runcpptests] Error 53 (ignored)
####### runcpptests done
The same project ran seamless in VS 7.1.Do you know if there's
something different in VS 8.0 which makes this error generate?
Thank you
csharpdevp@yahoo.ca - 28 Feb 2006 13:49 GMT
Alright I think I sort of figured out why it was not executing. It
seems like the makefiles I'm using (they've been made by someone else)
generate the test executable and place a copy of it in another folder,
where it itends to keep all the project dlls. It does not however copy
the Test.exe.manifest file to this folder, making it impossible for the
executable to latch on to the dll MSVP80D.dll.
So is the manifest what tells the executable which .NET library it has
to link with? Is this something new in the new .NET 2.0, or was it
there also in the older ones?
Thank you for your kind help.
Marcus Heege - 28 Feb 2006 22:40 GMT
> So is the manifest what tells the executable which .NET library it has
> to link with? Is this something new in the new .NET 2.0, or was it
> there also in the older ones?
It is not a .NET specific feature but a Win32 specific featue. Look here [1]
for further information
Marcus Heege
[1]
http://msdn.microsoft.com/library/en-us/sbscs/setup/isolated_applications_and_si
de_by_side_assemblies_start_page.asp
asd - 24 Mar 2006 13:51 GMT
it's a bug of Microsoft Visual C 8.0
you should download msvcr80.dll to recovery MSVCP80D.dll