none
MSVCR80.DLL Unable to locate component

    Question

  • Hi,

    I am trying to use Visual C++ 2005 to build the project which was create by Visual C++ 2003.

    When I run the code, an error message pops up.  "MSVCR80.DLL - Unable to locate component"

    who knows how can I fix this problem?

    Thanks a lot!

    Yang

    Thursday, May 11, 2006 4:36 PM

Answers

  • Yang, could you check if the generated exe has a manifest?

    You can do that check by opening the .exe file in VS, and in the resources you should be able to see a RT_MANIFEST. Expanding the RT_MANIFEST node should reveal a '1' node under which a reference to the MSVC80.DLL is defined.

    If you do not have that manifest, then you need to change the project settings to generate the manifest and embed it in the exe. This can be done through Linker->Manifest File->Generate Manifest=Yes and Manifest Tool->Input and Output->Embed Manifest=Yes.

    If you still see a problem, let us know.

    Thanks,
    George Mileka
    VC++ Libraries

    Friday, May 12, 2006 12:49 AM
  • Hi George & guys,

    I think I found the reason.
    I rebuilt the 3rd part libs with VS 2005, and then add them to my application. the problem is fixed.
    But I got another problem, please see the below,
    2>LINK : fatal error LNK1104: cannot open file 'LIBC.lib'

    I am using Multi-threaded Debug (/MTd) to build the application.

    I searched the this Forum and got a solution which is to build program by using Multi-threaded DLL (/MD).

    And then I got the message below,

    fatal error C1189: #error : Building MFC application with /MDDrinks (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MDDrinks

    What I should do now? Need your help!

    Thank you very much!


    Wednesday, May 17, 2006 4:20 PM
  • If you are getting such linker error that means you still have some old libraries that use libc.lib. Those nedd to be rebuilt with VC2005. Also, to use /MD just do as the error is suggesting (define _AFXDLL). You can do that though the command line compiler switch /D_AFXDLL

    Hope this helps!

    Thanks,
    Ayman Shoukry
    VC++ Team
    Wednesday, May 17, 2006 4:54 PM

All replies

  •  Yang. wrote:
    Hi,

    I am trying to use Visual C++ 2005 to build the project which was create by Visual C++ 2003.

    When I run the code, an error message pops up.  "MSVCR80.DLL - Unable to locate component"

    who knows how can I fix this problem?

    Thanks a lot!

    Yang

    Are you running that on a different machine? Or on the same machine that has VC++ 2005 installed? If the former, you need to redistribute the VC8 DLLs, if the latter - it is strange indeed.

    Thursday, May 11, 2006 4:52 PM
  • Thanks for your quick response.
    I installed VC++ 2005 and VC++ 2003 in the same machine. You mean I need to copy the VC8 DLLs to the debug folder? Thanks!

    Thursday, May 11, 2006 5:09 PM
  •  Yang. wrote:
    Thanks for your quick response.
    I installed VC++ 2005 and VC++ 2003 in the same machine. You mean I need to copy the VC8 DLLs to the debug folder? Thanks!

    No, that's not what I meant. Looks like your problem is something else. You are running the app on the same machine where VC 2005 is installed and yet getting this error.

    Perhaps, a VC++ team member may have a better answer. If no one gets back to you, you may even want to log a bug.

    Can you run apps that were directly created with VC 2005?

    Thursday, May 11, 2006 5:11 PM
  • Yes, I can run apps created directly by VC2005.

    Thanks!


    Thursday, May 11, 2006 5:24 PM
  • Yang, could you check if the generated exe has a manifest?

    You can do that check by opening the .exe file in VS, and in the resources you should be able to see a RT_MANIFEST. Expanding the RT_MANIFEST node should reveal a '1' node under which a reference to the MSVC80.DLL is defined.

    If you do not have that manifest, then you need to change the project settings to generate the manifest and embed it in the exe. This can be done through Linker->Manifest File->Generate Manifest=Yes and Manifest Tool->Input and Output->Embed Manifest=Yes.

    If you still see a problem, let us know.

    Thanks,
    George Mileka
    VC++ Libraries

    Friday, May 12, 2006 12:49 AM
  • Hi George,
    Thanks for your solution. I just have time to try it. Sorry!
    I follow your advice and still got the same result. I tried to open the app.exe.manifest file in the debug folder. It seems there is nothing useful in the file. Please see below,

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    </assembly>

    I also tried to generate a new project and copy the settings in the manifest file to replace it, but still got the same result. Actually, the modified file would be changed back.

    So I do not know why the manifest file can not be generated correctly...  What can I do now?

    Thanks for your help !

    Yang
     
    Monday, May 15, 2006 10:20 PM
  • Can we see a copy of your buildlog.htm. That might help. Also, are you making use of any third party static/dynamic libs?

    Tuesday, May 16, 2006 9:07 AM

  • Sure! Can I just paste the file here or sent it to you by email?

    Yes, I am using some 3rd part Libs to process the image in the application.

    It's quite big, over 600 lines.

    Thank you very much!

    Yang


    Tuesday, May 16, 2006 4:20 PM
  • Hi George & guys,

    I think I found the reason.
    I rebuilt the 3rd part libs with VS 2005, and then add them to my application. the problem is fixed.
    But I got another problem, please see the below,
    2>LINK : fatal error LNK1104: cannot open file 'LIBC.lib'

    I am using Multi-threaded Debug (/MTd) to build the application.

    I searched the this Forum and got a solution which is to build program by using Multi-threaded DLL (/MD).

    And then I got the message below,

    fatal error C1189: #error : Building MFC application with /MDDrinks (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MDDrinks

    What I should do now? Need your help!

    Thank you very much!


    Wednesday, May 17, 2006 4:20 PM
  • If you are getting such linker error that means you still have some old libraries that use libc.lib. Those nedd to be rebuilt with VC2005. Also, to use /MD just do as the error is suggesting (define _AFXDLL). You can do that though the command line compiler switch /D_AFXDLL

    Hope this helps!

    Thanks,
    Ayman Shoukry
    VC++ Team
    Wednesday, May 17, 2006 4:54 PM
  • Thank you very much!


    Wednesday, May 17, 2006 9:04 PM
  • Hi George,
    I compiled with the Microsoft Visual C++ 2005 express edition,
    commandline compiler apache2 on windows.

    After successfully compiling for Release and the debug version I receive the following error on my screen that the msvcr80.dll file is not found.

    I am not using the IDE to compile the application, I used the commandline.

    1) I run the environment variables:

    C:\Programme\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat"
    "c:\Programme\Microsoft Platform SDK\SetEnv.Cmd"
    C:\WINDOWS\system32\cmd.exe /k ""C:\Programme\Microsoft Visual Studio
    8\SDK\v2.0\Bin\sdkvars.bat"

    2) Followed the instructions compiling apache 2.0 under windows:
    http://httpd.apache.org/docs/2.0/platform/win_compiling.html

    after starting either the release or the debug version I receive the pop
    up window on my screen that msvcr80.dll is not found.

    The "Apache.exe.manifest" manifest file has the following content:

    <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
    <assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
    <dependency>
    <dependentAssembly>
    <assemblyIdentity type='win32' name='Microsoft.VC80.CRT'
    version='8.0.5060
    8.0' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
    </dependency>
    </assembly>

    What do I need to do to get rid of the error message so that the apache2 server (or application runs) fires up propably?!


    Tamer
    Saturday, August 05, 2006 12:30 PM
  • Hi Tamer,

    Have you installed the CRTs on the machine where you're running the new executables?

    You can check that by looking under the %windir%\winsxs\ for the CRT dlls (msvcr80.dll, msvcp80.dll,msvcm80.dll), the CRT manifest and the redirection policy...

    Let me know how this goes...

    thanks,

    George Mileka

    Visual C++ Libraries Team

    Friday, August 11, 2006 5:35 AM
  • Hi George!
    I have checked the directory you asked me for to look for the DLL files, nothing is over there. What do I have todo now?

    Tamer
    Saturday, August 19, 2006 2:43 PM
  • Hi George!
    I have checked the directory you asked me for to look for the DLL files, nothing is over there. What do I have todo now?

    Tamer
    Thursday, August 31, 2006 11:23 AM
  • Hello George,

    You made this comment a couple of years back and I am stuck now with somethiing similar: migrating a VC++ application built with VS6 that uses JPEG.lib to VS2005/2008 (error is the same with 2005 or 2008).
    I researched fully all the forums where this LIBC.lib messages are given and tried everything (believe I have): made sure that I am not using in my projects the /ML but the /MD switches, Ignore the library at linker level, etc etc etc etc....

    The problem is still there because of the following: is not my app source the one with the issue. It is the JPEG.lib the one generating the "cannot find the LIBC.lib message when the linker runs. I know so because when I ignore the LIBC.lib or built a mocked version of it, JPEG throws unresolved externals for a couple of old streamed file calls.

    Since I do not have the source code for JPEG.lib as it came with VS6 then I am in trouble and cannot release!!!

    Is there an equivalent version of this library for VS2005? I tried the WINMM and nothing.

    Someone posted something saying he recompiled it... god knows how without the source code so I know that islikely dumb comments.

    HELP!!!
    Sunday, October 11, 2009 3:36 AM
  • Hello Ayman,

    You made this comment a couple of years back and I am stuck now with somethiing similar: migrating a VC++ application built with VS6 that uses JPEG.lib to VS2005/2008 (error is the same with 2005 or 2008).
    I researched fully all the forums where this LIBC.lib messages are given and tried everything (believe I have): made sure that I am not using in my projects the /ML but the /MD switches, Ignore the library at linker level, etc etc etc etc....

    The problem is still there because of the following: is not my app source the one with the issue. It is the JPEG.lib the one generating the "cannot find the LIBC.lib message when the linker runs. I know so because when I ignore the LIBC.lib or built a mocked version of it, JPEG throws unresolved externals for a couple of old streamed file calls.

    Since I do not have the source code for JPEG.lib as it came with VS6 then I am in trouble and cannot release!!!

    Is there an equivalent version of this library for VS2005? I tried the WINMM and nothing.

    Someone posted something saying he recompiled it... god knows how without the source code so I know that islikely dumb comments.

    Your comment about defining the AFXDLL did not work for me either. Any other suggestions? How does Microsoft do these things to mere mortals...?!?

    HELP!!!
    Sunday, October 11, 2009 3:38 AM