26

64ビットアプリから64ビットWindowsでuser32.dllをピンボークするのは間違っていますか?私はこれを何度も成功させ、エラーは発生しませんでしたが、矛盾しているようです。代わりにuser64.dllを探す必要がありますか?

4

2 に答える 2

35

名前user32.dllは誤解を招きます。user32.dllそれはあなたが呼んでいる64ビットバージョンです。64ビットバージョンはにあり%windir%\System32\user32.dllます。

32ビットアプリケーションとの互換性のために、32ビットバージョンが含まれています。にあり%windir%\SysWOW64\user32.dllます。dumpbinユーティリティを使用してそれらを検査できます。

System32 \ user32.dll:

FILE HEADER VALUES
        8664 machine (x64)

SysWOW64 \ user32.dll:

FILE HEADER VALUES
         14C machine (x86)
于 2009-10-08T22:01:36.133 に答える
1

今説明したのとまったく同じ理由でuser64.dllはありません。.NETプログラムはCPUアーキテクチャに依存しない可能性があるため、同じコードがx86とx64で機能する必要があります。
プログラムをx86プラットフォームに移行しても、変更なしで実行されます。
彼らがuser32.dllという名前を付けたとき、彼らはそれらのシナリオを念頭に置いていなかったと思います。

于 2009-10-08T22:06:04.847 に答える