Ответ 1
Он всегда называется kernel32.dll
, даже в 64-битных окнах. Это связано с теми же соображениями совместимости, что system32
содержит 64-битные двоичные файлы, а syswow64
содержит 32-разрядные двоичные файлы.
Я смотрел на некоторые библиотеки с dumpbin, и я заметил, что все 64-битные версии были связаны с KERNEL32. Нет ли KERNEL64 в 64-битной Windows? Если нет, то почему?
Все мои операционные системы 32-битные, поэтому я не могу просто посмотреть. Поиск Google не вызывает ничего полезного, поэтому я подозреваю, что нет KERNEL64, но мне все еще интересно, почему это так.
EDIT: Я нашел это позже, что очень полезно. Руководство по MSDN для x64
Он всегда называется kernel32.dll
, даже в 64-битных окнах. Это связано с теми же соображениями совместимости, что system32
содержит 64-битные двоичные файлы, а syswow64
содержит 32-разрядные двоичные файлы.
В 64-разрядных версиях Windows один из "kernel32.dll" содержит 64-битный код, но по-прежнему называется kernel32.dll. Это, по крайней мере, вводит в заблуждение
Надеемся, что следующие ссылки предоставят решение для этого
http://www.howzatt.demon.co.uk/articles/DebuggingInWin64.html
http://www.viva64.com/en/l/0002/
64-битная Windows предоставляет такую среду "из коробки" и поддерживает 32-разрядные приложения, используя подсистему Windows под Windows 64, сокращенно WOW64, которая работает в пользовательском режиме и отображает 32-битные вызовы на ядро операционной системы в эквивалентный 64-битный вызов. Обычно это почти незаметно для вызывающей программы. Windows предоставляет набор 64-разрядных DLL в% windir%\system32 и эквивалентный набор 32-разрядных DLL в% windir%\syswow64. Фактически основная часть двоичных изображений в этом каталоге идентична тем же файлам в каталоге system32 при 32-разрядной установке Windows. (Мне кажется неудачной проблемой именования, что 64-разрядные библиотеки DLL живут в system32, а 32-разрядные - в syswow64, но там есть)