検索
特集

時代に遅れないためのWin64用アプリケーション開発64ビットコンピューティング最前線(3/3 ページ)

64ビット環境への理解も少しずつ深まってきた。今回は、64ビットWindows用アプリの開発について解説する。Win32との互換性などには注意してほしい。(特集:64ビットコンピューティング最前線)

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

32ビットとの互換性(WOW64)

 Win64では、64ビットWindowsにネイティブで対応するアプリケーションのほか、Win32エミュレーションレイヤによって、従来の32ビットアプリケーションも実行させることができます。これを可能にしているのが「WOW64(Windows On Windows 64)」です。

 WOW64はWin64の一部として実装されており、環境変数などもそれぞれのバージョンが用意されています。ただし、WOW64で対応するのはWin32アプリケーションのみで、Windows 3.1以前のWin16アプリケーションは動作させることができません。ですから、Win16のコードで書かれている一部のインストーラなどは実行できないことになります。

 また、64ビットプラットホームでのデバイスドライバについて、こちらは64ビットで書かれていなければなりません(Table13)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 64ビットハードウェアは多くの32ビットアプリケーションと互換性がありますが、今のところ32ビットアプリケーションは、やはり32ビットハードウェア上で動作させるほうが若干スムーズに実行できることが多いようです(ただしx64システムでは、32ビットアプリケーションもネイティブで実行可能です)。とはいえ、64ビット環境で旧来の32ビット資産を生かせるというのはとてもありがたいことです。

32ビットと64ビットの共存のポイント

 今後しばらくの間は、32ビットWindowsと64ビットWindowsアプリケーションは、それぞれが共存していくことになるでしょう。そうした状況において、両者の互換性を保つアプリケーションを開発するためにWindowsプログラマが心がけるべき点は、次のとおりです。

  • ポインタをint、long、ULONG、DWORDなどにキャストしてはならない
  • ポインタの型変換には、PtrToLongやPtrToUlong関数を使うこと
  • Win64はLLP64のプログラミングデータモデルなので、引数によってポインタを得るような関数には注意する
  • ポリモーフィックAPIに注意する
  • 新しいWindowクラス関数および定義を使う
  • size_t、HANDLE、LPARAM、WPARAM、LRESULTなど派生タイプのデータ型はプラットホームによってサイズが変わることに注意

 Part 3で説明した64ビットプログラミングの一般的な注意点とこれらの点に気をつければ、32ビット環境も考慮した64ビットWindows対応アプリケーションの開発はだいぶ楽に行うことができるはずです。

 将来もC/C++プログラミング言語を用いてWindowsアプリケーションを開発していこうと考えているプログラマにとって、このあたりはしっかりと押さえておきたいポイントです。

前のページへ |       

Copyright(C) 2010 SOFTBANK Creative Inc. All Right Reserved.

ページトップに戻る