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!
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
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.
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...
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 /MD (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD
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.
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
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
MSVCR80.DLL Unable to locate component
UltraMAX
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!
kgs1951
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
Bishwajit Aich
Thanks!
GeoffCollishaw
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.
Rei
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
XblackdemonX
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
James Marshall
Can we see a copy of your buildlog.htm. That might help. Also, are you making use of any third party static/dynamic libs
ZHOU Dan
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 /MD
What I should do now Need your help!
Thank you very much!
kzaltman
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
Giant Snowman
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
cfink
Alexandr1306
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...
Thanks for your help !
Yang
rigg
Jack J. Williams
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