×[PR]この広告は3ヶ月以上更新がないため表示されています。ホームページを更新後24時間以内に表示されなくなります。APIを使うとなると、どうしてもHSPでは使われないようなC言語の知識が必要になる部分が出てきてしまいます。type)』もそういったものの1つです。データ型とは、データの性格や数値の表現範囲などを規定するためのものです。データのサイズや符号の有無、データが変更されるものかどうかを規定します。HSPでは符号付き32ビット整数と文字列の2種類だけですが、C言語では多くの型が存在します。Cの世界では最も基本的な型として以下のものがあります。括った部分は省略可能です。int型のデータサイズは、16ビット環境では16ビット(2バイト)ですが、32ビット環境では32ビット(4バイト)になります。上で示した基本データ型にアスタリスク("*")をつけたものは、そのデータ型へのポインタ(メモリアドレスを格納する変数)を表します。int」型の変数のアドレスを格納する変数の型を表しています。データ型の先頭に「const」をつけると、それはデータの内容が変更されないことを示します。APIを使うプログラミングではこう言ったデータ型に別名をつけて、いろいろなデータの種類をわかりやすく表すようにしています。int」に「WORD」という別名をつけて、それを1つの型として扱っています。他にも、「char*」を「LPSTR」としたりしています。APIで使われる代表的なデータ型の一部を挙げておきます。意味BOOLTRUE(1と定義)またはFALSE(0と定義)のブール値。通常はFALSEであるかFALSE以外であるかで識別する。BOOLEANTRUE(1と定義)またはFALSE(0と定義)のブール値。通常はFALSEであるかFALSE以外であるかで識別する。)HWNDウィンドウハンドルHDCデバイスコンテキストハンドルHICONアイコンハンドルHANDLEオブジェクトハンドルHBITMAPビットマップハンドルHBRUSHブラシハンドルHCURSORカーソルハンドルHGDIOBJGDIオブジェクトハンドルHGLOBALグローバルオブジェクトハンドルHIMAGELISTイメージリストハンドルHINSTANCEインスタンスハンドルHMENUメニューハンドルINT符号付き整数(int型)LANGID言語ID(WORD型/2バイト)LCIDロケールID(DWORD型/4バイト)LONG32ビット符号付き整数(long型)LONGLONG64ビット符号付き整数(__int64型/8バイト)LPARAM32ビットメッセージパラメータLPBOOL/PBOOLBOOL型へのポインタLPBYTE/PBYTEBYTE型へのポインタLPCSTR/PCSTR定数ANSI(またはマルチバイト)文字列へのポインタ。(内容が変更されない)LPCTSTR/PCTSTRANSI版では定数ANSI(またはマルチバイト)文字列へのポインタ。Unicode版では定数ワイド文字列(Unicode文字列)へのポインタ。(内容が変更されない)LPCVOIDあらゆる型のデータへのポインタ。(内容が変更されない)LPCWSTR/PCWSTR定数ワイド文字列(Unicode文字列)へのポインタ。(内容が変更されない)LPDWORD/PDWORDDWORD型へのポインタLPHANDLE/PHANDLEHANDLE型へのポインタLPINT/PINTINT型へのポインタLPLONG/PLONGLONG型へのポインタLPSTR/PSTRANSI(またはマルチバイト)文字列へのポインタLPTSTR/PTSTRANSI版ではANSI(またはマルチバイト)文字列へのポインタ。Unicode版ではワイド文字列(Unicode文字列)へのポインタ。LPVOID/PVOIDあらゆる型のデータへのポインタLPWORD/PWORDWORD型へのポインタLPWSTR/PWSTRワイド文字列(Unicode文字列)へのポインタPBOOLEANBOOLEAN型へのポインタSHORT16ビット符号付き整数(short型/2バイト)TCHARANSI版ではCHAR型(1バイト)。Unicode版ではWCHAR型(2バイト)。__int64型/8バイト)VOID型なし(void型)。APIを扱う場合には、データ型そのものは実はあまり問題になりません。問題となるのは、その型の表すデータのサイズなのです。CHAR型は8ビット(1バイト)であるとか、WORD型は16ビット(2バイト)であるといったことです。上の表で示したデータ型のデータサイズは、明示しているもの以外はすべて32ビット(4バイト)になります。Windowsは32ビット環境であるために、すべてのオブジェクトのハンドルは32ビット(4バイト)の大きさになりますし、ポインタに関しても、すべて32ビット仮想アドレスで表されているのでどのポインタも32ビット(4バイト)の大きさになります。これらのサイズが問題になるのかというと、たとえばWORD型データ(サイズ2バイト)の配列をHSPで扱う場合を考えてみましょう。......というようになってしまうのです。これでは期待したとおりの結果が得られなくなってしまうでしょう。16)としなくてはならないのです。そのデータ型のデータサイズがいくらかを知ることがHSPでAPIを使っていく上では非常に重要になってきます。次へ×[PR]この広告は3ヶ月以上更新がないため表示されています。ホームページを更新後24時間以内に表示されなくなります。