|
本サイトは移転しました。旧アドレスからのリダイレクトは2025年03月31日(月)まで有効です。
|
🛈 | ✖ |
アーキテクチャはコンピュータ(特にハードウェア)における基本設計や設計思想などを意味する。
アーキテクチャは、大胆にはインテル系CPUとモトローラ系CPUに分類できる。ウィンドウズの稼働するパソコンはほぼ例外なくインテル系(x86アーキテクチャ)で、通常はビットサイズのみを意識すれば良い。ウィンドウズは32ビットx86アーキテクチャをx86アーキテクチャ、64ビットx86アーキテクチャをx64アーキテクチャとして参照することが多いので、注意が必要である。本サイトでも特に断らない限りこの慣例に従う。なおウィンドウズ10バージョン1709から対応アーキテクチャにARM64が追加されているようだが、本サイトはこれを無視する。
開発アプリケーションのターゲットを32ビットとするか64ビットとするか。現在ではウィンドウズパソコンのほとんどが64ビット(x64)で64ビットウィンドウズがプリインストールされていると思われるが、廉価なタブレットパソコンなどに32ビット(x86)が残る。64ビット(x64)にあえて32ビットウィンドウズをインストールして運用するケースも考慮しなければならない。
ほとんどの場合64ビットアプリケーションの32ビットアプリケーションに対する優位性を感じることはないだろう。あなたの使うマイクロソフトオフィスは恐らく32ビット版であろうし(過去資産との継続性からマイクロソフトは長い間32ビット版を推奨してきた)、そのことで不具合を感じることはほとんど無かったのではないだろうか。
本サイトでの開発アプリケーションは以下のターゲットを選択できるようにする。
ウィンドウズでプログラミングする限り他のアーキテクチャを意識する必要は少ないが、エンディアン(バイトオーダ、バイト順)が問題となる場合がある。エンディアンとは複数のバイト(8ビットデータ)を並べる順序であり、16(32,64,...)ビットデータをバイト列に並べるとき上位から並べればビッグエンディアン、下位から並べればリトルエンディアンという。
インテル系はリトルエンディアン、モトローラ系はビッグエンディアンなので、両者間で16(32,64,...)ビットデータをバイト列を介して交換(ファイル、ネットワーク)すると問題が発生する可能性がある。ネットワークは初期にモトローラ系で発展したため現在でもビッグエンディアンがデフォルトと見なされている。例えばユニコード(UTF-16あるいはUTF-32)のバイト列において規格とウィンドウズ慣用が異なる場合がある。