たまに忘れてて、あれ?ってなるのでメモメモ。
いつからこのオプションが追加されたのか、VisualStudio 2013でプロジェクトのプロパティページに「32ビットの優先」というチェックボックスが追加されています。
このチェックボックスですが、プロジェクトの種別がコンソールアプリケーションなどでは、デフォルトでONとなっています。CPUターゲットもデフォルトではAnyCPUなので、いつものように64ビットOSでアプリ作ってて、SQLiteなどのプラットフォーム毎にDLLが分かれているライブラリなどを利用しているといきなりエラー出たりしてビックリします。
大抵のアプリでは問題にならないかもしれませんが、画像などを扱うアプリではメモリが4GBを超えるのもあるので、その場合32ビット状態では4GB以上のメモリが扱えないので注意。
以下、MSDNの該当ページです。
上記ページに、以下の条件の場合に有効になるとのこと。
- [ビルド] ページの [プラットフォーム ターゲット] ボックスの一覧で、[Any CPU] が設定されている。
- [アプリケーション] ページの [出力の種類] ボックスの一覧で、プロジェクトがアプリケーションであることが指定されている。
- [アプリケーション] ページの [ターゲット フレームワーク] ボックスの一覧で、.NET Framework 4.5 が指定されている。
ちなみに、今動いているアプリが32ビットプロセスなのか64ビットプロセスなのかは
Environment.Is64BitProcess
で確認できます。
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場