Dumpbinを使用していくつかのライブラリを調べていたところ、64ビットバージョンがすべてKERNEL32にリンクされていることに気付きました。 64ビットWindowsにKERNEL64はありませんか?そうでない場合、なぜですか?
私のオペレーティングシステムはすべて32ビットなので、見ているだけではわかりません。グーグル検索で価値のあるものは何も表示されないので、KERNEL64はないのではないかと思いますが、これがなぜなのかについてはまだ知りたくありません。
編集:私はこれを後で見つけました。これはかなり便利です。 x64へのMSDNガイド
64ビットWindowsでも、常にkernel32.dll
と呼ばれます。これは、system32
に64ビットのバイナリが含まれ、syswow64
に32ビットのバイナリが含まれるのと同じ互換性の理由によるものです。
64ビットバージョンのWindowsでは、「kernel32.dll」の1つに64ビットコードが含まれていますが、kernel32.dllと呼ばれています。これは少なくとも誤解を招く
次のリンクがこれに対する解決策を与えることを願っています
http://www.howzatt.demon.co.uk/articles/DebuggingInWin64.html
http://www.viva64.com/en/l/0002/
64ビットWindowsは、そのような環境を「そのまま」提供し、「Windows on Windows 64」サブシステムを使用して32ビットアプリケーションをサポートします。このサブシステムはWOW64と略され、ユーザーモードで実行され、32ビットコールをオペレーティングシステムにマッピングします。カーネルを同等の64ビット呼び出しに変換します。これは通常、呼び出し元のプログラムにはほとんど見えません。Windowsは、%windir%\ system32に64ビットDLLのセットを提供し、%windir%\ syswow64に同等の32ビットDLLのセットを提供します。実際、このディレクトリ内のバイナリイメージの大部分は、32ビットWindowsインストールのsystem32ディレクトリ内の同じファイルと同じです。 (64ビットDLLがsystem32にあり、32ビットDLLがsyswow64にあるのは残念な命名問題ですが、そこにあります)