The program can't start because msvcp80.dll is

2019-03-06 00:29发布

问题:

I work on a machine with win 7 32bit on visual studio 2010.

I tried to run in release mode a code that work fine on other computer(win7 64bit), and the following message came up:

The program can't start because msvcp80.dll is missing...

I tried looking up at threads dealing with this problem. tried to install diffrent Redistributable runtime versions. tried to copy those files(msvcp80.dll,msvcm80.dll, msvcr80.dll) to the project dir. and some diffrent things I don't even realised what I'm doing.

maybe some other ideas?


OK

thanks for your answers.

before i started the project i confirm all the build dll are 32bit.

I work on a 'opencv' project and narrow the problem to this one: the only problem occurred on opencv_imgproc230 lib function (like cvtColor, GaussianBlur)' what cause me to check with the program above(the_mandrill's link) the includes at this dll. it's include(or point I guess) for msvcp100.dll what seems reasonable because i work on VS10 enviroment.but even though it's screams for msvcp80.dll what belongs to VS80 I think.

by the way, when i manually include (msvcp80.dll,msvcm80.dll, msvcr80.dll) it's screams:

"R6034 An application has made an attempt to load the c runtime library incorrectly..."

It's seems that it's need to tell him to work with the VS10 version(for this dll's/runtime library)

回答1:

Install Dependency Walker and run in 'Profile' mode (f7) which will show you the dlls it's looking for and failing to find.



回答2:

This just means that you link agains MSVC C runtime dynamically. So you have to install the so called redist package.

msvcp80.dll -> VC 8 -> VS 2005

X86 – http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en

X64 - http://www.microsoft.com/downloads/details.aspx?FamilyId=90548130-4468-4BBC-9673-D6ACABD5D13B&displaylang=en

The dlls where installed to a central place by the redisrt package and should be resolvable after installation.



回答3:

Can you check to see if your dlls are 32bit ? Maybe you have the 64 bit versions.

See How can I test a Windows DLL file to determine if it is 32 bit or 64 bit?.



回答4:

See this question.

You mentioned that you've installed the VC8 redistribute packages, but you may have missed the "correct" one.

You probably want: Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package MFC Security Update