IntPtr.Sizeを使用すると8になるはずです。しかし、私はまだWidnows 7 x64でx64マシンで4を得ています、なぜですか?Windows x64でIntPtr.sizeが4になるのはなぜですか?
11
A
答えて
17
ファイルのCPUアーキテクチャを確認してください、それはx86ですか? CPU any/64bit
11
64ビットオペレーティングシステムは、32ビットWindows環境をエミュレートするWOW64というエミュレートされた環境を実装しています。 x86(32ビット)を対象としたプログラムを構築しています。つまり、プロセスは32ビットプロセスとしてエミュレータで実行され、もちろんポインタは4バイト幅です。
x64またはAnyCPUをターゲットにするオプションを変更すると、プロセスが64ビットシステムで実行されているときに、ポインタのサイズは8バイトになります。
0
ビルドターゲットを確認してください:x86/x64または任意のCPU 設定がx86または任意のCPUの場合、intptrはおそらく4です。
より提案:
あなたはx64のモードでプログラムを実行する必要がない場合は、x64のモードは、パフォーマンスと容量の使用状況の両方にマイナスの影響を持っているためのx64にビルドターゲットを変更donn'tしてください。私はMSDNのオリジナル記事のリンクを忘れていましたが、主な理由はptrのサイズとGCの負担が増えたため、その記事を検索することができます。
7
任意のCPUアーキテクチャを選択した場合でも、VS2013には「32ビット優先」というプロジェクトプロパティの新しいオプションがあります。 IntPtr.Size = 8を取得するには、64ビット開発マシンでオフにする必要があります。
関連する問題
- 1. Windows UniversalアプリケーションにXmlNode.SelectSingleNodeメソッドがないのはなぜですか?
- 2. JDK-7u3-windows-x64をインストールできない
- 3. パフォーマンスがOpenMPでx64になる
- 4. Windows XPでboost.logがクラッシュするのはなぜですか?
- 5. Windows XPでSVNコマンドラインクライアントがフリーズするのはなぜですか?
- 6. x64プログラムはWindows x64上でx86 COMオブジェクトにアクセスできますか?
- 7. なぜsizeof( 'c')が1ではなく4を返すのですか?
- 8. 私のアプリがXcode 4/iOS5で回転しないのはなぜですか?
- 9. Windows/NTFSでflockに時折時間がかかるのはなぜですか?
- 10. 低レベルのWindowsキーフックが機能しなくなるのはなぜですか?
- 11. Rails 4:プロダクションでフォントが読み込まれないのはなぜですか?
- 12. x64上でのコンパイルx64上のx32 JDK x64上のWindows
- 13. なぜintポインタ '++'は1ではなく4だけインクリメントするのですか?
- 14. X86またはX64のAppID!異なるか同じですか?
- 15. UUID形式:8-4-4-4-12 - なぜですか?
- 16. WindowsでPostgreSQLが遅いのはなぜですか?
- 17. Windows 7 x64でPostMessageが動作しない
- 18. なぜstrptimeが4時間遅れるのですか?
- 19. Windowsフォームラベルに表示されないのはなぜですか?
- 20. グリッドパネルイベントがExtJS 4での起動を停止するのはなぜですか?
- 21. Rails 4 - destroy_allの後にインデックスレコードが残るのはなぜですか?
- 22. インデックスがMVC 4の範囲外にあるのはなぜですか?
- 23. IIS7でcURLがWindows認証で動作しないのはなぜですか?
- 24. Galaxy Nexus/Android 4のビューポートタグが機能しないのはなぜですか?
- 25. メモリアドレスがMIPSで4ずつインクリメントされるのはなぜですか?
- 26. 誰かが.NET Framework 4 Client Profileを使用するのはなぜですか?
- 27. 一部のWindows 7システムでjava.net.preferIPv4Stack = trueが必要なのはなぜですか?
- 28. PHP WindowsのインストールでPEARが動作しないのはなぜですか?
- 29. なぜWindowsは「実行:」がCMDの行と異なるのですか?
- 30. CLDRとWindowsの通貨フォーマットが異なるのはなぜですか?
アプリケーションをx64ではなくx86(プロパティ>ビルド>プラットフォームターゲット)としてコンパイルしていますか? – Rob
ここをクリックしてください:http://stackoverflow.com/questions/399003/is-the-sizeofsome-pointer-always-equal-to-four – htmldrum