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. 64ビットOSのAnyCPUにもかかわらず、IntPtr.Sizeは常に4です
- 2. WindowsでProBarの動作が異なると、プロ1とWindows 4がプロフェッショナル4になるのはなぜですか?
- 3. JDK-7u3-windows-x64をインストールできない
- 4. Windows UniversalアプリケーションにXmlNode.SelectSingleNodeメソッドがないのはなぜですか?
- 5. パフォーマンスがOpenMPでx64になる
- 6. なぜこのリストに4がないのですか?
- 7. Windows XPでboost.logがクラッシュするのはなぜですか?
- 8. Windows XPでSVNコマンドラインクライアントがフリーズするのはなぜですか?
- 9. x64プログラムはWindows x64上でx86 COMオブジェクトにアクセスできますか?
- 10. x64上でのコンパイルx64上のx32 JDK x64上のWindows
- 11. なぜ-2 ** 2 == -4でもmath.pow(-2,2)== 4.0なのはなぜですか?
- 12. Windowsでは、numpadのキーコードが異なるのはなぜですか?Mac?
- 13. x64アセンブラでprintfを呼び出すときに "mov rcx、rax"が必要なのはなぜですか?
- 14. X86またはX64のAppID!異なるか同じですか?
- 15. Windowsコンソールクローズイベントハンドラがタイムアウトするのはなぜですか?
- 16. sizeof()のdouble配列[4]はなぜ4つだけですか?
- 17. Windows/NTFSでflockに時折時間がかかるのはなぜですか?
- 18. なぜ4番目にテンプレートが4回コンパイルされるのですか?
- 19. 低レベルのWindowsキーフックが機能しなくなるのはなぜですか?
- 20. Windows 7 x64でPostMessageが動作しない
- 21. Windows上でRustでx64をコンパイルする
- 22. なぜsizeof( 'c')が1ではなく4を返すのですか?
- 23. Windowsフォームラベルに表示されないのはなぜですか?
- 24. WindowsでPostgreSQLが遅いのはなぜですか?
- 25. Windowsでtime.sleep()が遅いのはなぜですか?
- 26. 私の列がブートストラップ4でオフセットしないのはなぜですか?
- 27. 私のアプリがXcode 4/iOS5で回転しないのはなぜですか?
- 28. Windowsでffmpeg x64をビルドすることは可能ですか?
- 29. なぜintポインタ '++'は1ではなく4だけインクリメントするのですか?
- 30. アセットがRails 4でレンダリングされないのはなぜですか?
アプリケーションをx64ではなくx86(プロパティ>ビルド>プラットフォームターゲット)としてコンパイルしていますか? – Rob
ここをクリックしてください:http://stackoverflow.com/questions/399003/is-the-sizeofsome-pointer-always-equal-to-four – htmldrum