2009-09-01 25 views
17

Estaba mirando algunas bibliotecas con dumpbin y noté que todas las versiones de 64 bits estaban vinculadas a KERNEL32. ¿No hay KERNEL64 en Windows de 64 bits? Si no, ¿por qué?¿Windows de 64 bits usa KERNEL64?

Todos mis sistemas operativos son de 32 bits, así que no puedo simplemente mirar. Una búsqueda en google no aporta nada que valga la pena, así que sospecho que no hay KERNEL64, pero aún tengo curiosidad de por qué es esto.

EDIT: He encontrado esta tarde que es bastante útil. MSDN guide to x64

+0

Esto es una tarea remota, pero podría estar relacionado con que Windows API sigue siendo el mismo. El kernel aún es definitivamente de 64 bits. –

Respuesta

16

Siempre se llama kernel32.dll, incluso en ventanas de 64 bits. Esto es por las mismas razones de compatibilidad que system32 contiene binarios de 64 bits, mientras que syswow64 contiene binarios de 32 bits.

+7

* ¿Qué * razones de compatibilidad? –

+1

@ Martin Aquí está una gran respuesta: http://stackoverflow.com/questions/949959/why-do-64bit-dlls-go-to-system32-and-32bit-dlls-to-syswow64-on-64bit-windows –

+0

bastante seguro de su mantener un código como el trabajo en 16 bits, 32 bits y 64 modos de bits sin cambiar el código: '((BOOL (WINAPI *) (DWORD, DWORD)) GetProcAddress (GetModuleHandle ("kernel32"), "bip")) (1000, 300); '. Seguramente si Microsoft iba a retroceder en el tiempo, simplemente lo llamarían Kernel.dll, muestra el costo de cambiar una interfaz después de la publicación. – Dmitry

4

En las versiones de 64 bits de Windows una de la s "kernel32.dll" contiene código de 64 bits, pero todavía se llama kernel32.dll. Esto es al menos engañosa

esperanza los siguientes enlaces le darán la solución para este

http://www.howzatt.demon.co.uk/articles/DebuggingInWin64.html

http://www.viva64.com/en/l/0002/

http://blogs.msdn.com/b/aaron_margosis/archive/2012/12/10/using-ntfs-junctions-to-fix-application-compatibility-issues-on-64-bit-editions-of-windows.aspx

de 64 bits de Windows proporciona un entorno "como fuera de la box "y admite aplicaciones de 32 bits que utilizan el subsistema" Windows en Windows 64 ", abreviado como WOW64, que se ejecuta en modo de usuario y asigna las llamadas de 32 bits al sistema operativo incorporar kernel a una llamada equivalente de 64 bits. Normalmente, esto es casi invisible para el programa que realiza la llamada. Windows proporciona un conjunto de archivos DLL de 64 bits en% windir% \ system32 y un conjunto equivalente de archivos DLL de 32 bits en% windir% \ syswow64. De hecho, la mayor parte de las imágenes binarias en este directorio son idénticas a los mismos archivos en el directorio system32 en una instalación de Windows de 32 bits. (Me parece un desafortunado problema de nomenclatura que las DLL de 64 bits vivan en system32 y las de 32 bits vivan en syswow64, pero ahí está)

Cuestiones relacionadas