Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a true 64-bit version of msvcr80.dll? If not, why not?

I have read the link that answers the question of whether there is a 64 bit version of Visual Studios ( Visual Studio 64 bit? ). The simple answer is No, but the 32 bit Visual Studio development environment can produce 64-bit executables.

Questions:

1) Is there a 64 bit version of the Microsoft redistributable library msvcr80.dll? I have installed the redistributable package on my Windows 7, 64 bit machine, and all the copies (7 in all) found in the winsxs sub-directory indicate in their header sections that they are 32 bit.

2) Isn't it true that:

a) 32-bit executables cannot load a 64-bit dll?

b) 64-bit executables cannot load a 32-bit dll?

c) if it is true that all versions of msvcr80.dll are tru ) 32-bit, as indicated in the header sections of each, how can a 64-bit application built with Visual Studio use any of the functionality of this redistributable?

If someone has found a true 64-bit version of this file (msvcr80.dll) i.e. one in which the header section actually states that it is a 64-bit library, please point me to the link.

New: Added image of BeyondCompare Viewer to show contents of msvcr80.dll header section, indicating dll is targeted for 32 bit use...

like image 416
ryyker Avatar asked Dec 22 '22 11:12

ryyker


1 Answers

Beyond Compare isn't using the PE headers for what it's displaying - it's using version resources, and the FILEOS version resource for the x64 msvcr80.dll has the value VOS_NT_WINDOWS32 (as far as I know there isn't a VOS_NT_WINDOWS64).

Use dumpbin /headers (or link /dump /headers) to get your information about the PE headers. You'll see that the x64 DLLs have the following info:

FILE HEADER VALUES
            8664 machine (x64)
like image 76
Michael Burr Avatar answered Dec 24 '22 02:12

Michael Burr