精度固定の整数については変数の長さを明示的に示すための型が新しく追加されています(Table9)。
|
ポインタに関する型およびマクロについては、それぞれTable10、11のようになっています。
|
|
また、型変換をするためのヘルパー関数が用意されています(Fig.5)。このヘルパー関数は、Basetsd.hに定義されており、これらの関数を用いることで型変換を安全かつ確実に行うことができます。
Fig.5 型変換ヘルパー関数一覧 |
unsigned long HandleToUlong( const void *h ) long HandleToLong( const void *h ) void *LongToHandle( const long h ) unsigned long PtrToUlong( const void *p ) unsigned int PtrToUint ( const void *p ) unsigned short PtrToUshort ( const void *p ) long PtrToLong( const void *p ) int PtrToInt ( const void *p ) short PtrToShort ( const void *p ) void * IntToPtr ( const int i ) void * UIntToPtr ( const unsigned int ui ) void * LongToPtr ( const long l ) void * ULongToPtr ( const unsigned long ul ) |
型変換による警告メッセージもいくつか追加されています(Table12)。これらの警告メッセージは/Wp64コンパイラオプションをつけた場合の警告です。このオプションをオフにすることで警告を消すことができますが、32ビットと64ビットでの互換性を考慮したアプリケーションを作成する場合、通常はオンにしておいたほうがよいでしょう。
|
64ビットWindows環境でも、大部分のWindows APIはWin32から変更なしで利用することができます。ただし、いくつかのAPIは拡張されたデータ型を使用するために引数の型が変更されました。
また、64ビット引数を2つの引数に分割するなど、APIそのものが変更されたものもあります。そして、Windowとクラスに関するポリモーフィック(〜Ptr)なAPIも追加されています。
これらの変更点について、詳しくはMSDN(MSDNの「64ビットWindows API(英語)」の項)を参照していただくとして、ざっとFig.6、7のAPIが変更になります。
Copyright(C) 2010 SOFTBANK Creative Inc. All Right Reserved.