Hello, Win32 API(Delphi) World!

Posted on 5月 5th, 2012 by cx20

Win32 API(Delphi)

Win32 API は、Windows の機能にアクセスする為の API(Application Programming Interface)である。
以下は Delphi からの呼出し例である。
Win32 API の参照方法としては、external 宣言を用いる方法の他、Winapi.Windows ライブラリを用いる方法などがある。

ソースコード(external 宣言)

program hello;
 
function MessageBox(hWnd: THandle; lpText: PAnsiChar; lpCaption: PAnsiChar; uType: Cardinal): Integer;
    stdcall; external 'user32.dll' name 'MessageBoxA';
 
begin
    MessageBox( 0, 'Hello, Win32 API(Delphi) World!', 'Hello, World!', 0 );
end.

ソースコード(Winapi.Windows ライブラリ)

program hello;
 
uses
    Windows;
 
begin
    MessageBox( 0, 'Hello, Win32 API(Delphi) World!', 'Hello, World!', MB_OK );
end.

Win32 データ型と Delphi データ型の対応は主に以下のようになっている。

Win32 データ型 C/C++ データ型 Delphi データ型
HANDLE void * THandle
BYTE unsigned char Byte
SHORT short Smallint
WORD unsigned short Word
INT int Integer
UINT unsigned int Cardinal
LONG long Integer
BOOL int LongBool
DWORD unsigned long LongWord
ULONG unsigned long LongWord
CHAR char AnsiChar
WCHAR wchar_t WideChar, Char
LPSTR char * PAnsiChar
LPCSTR const char * PAnsiChar
LPWSTR wchar_t * PWideChar, PChar
LPCWSTR const wchar_t * PWideChar, PChar
FLOAT float Single
DOUBLE double Double
LONGLONG __int64 Int64
DWORD64 unsigned __int64 UInt64

コンパイル方法(Delphi XE2)

C:¥> dcc32 hello.pas

実行結果

---------------------------
Hello, World!
---------------------------
Hello, Win32 API(Delphi) World!
---------------------------
OK   
---------------------------

Tags:

Categories: Delphi, library, Win32 API

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

WP-SpamFree by Pole Position Marketing