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. |
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. |
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)
実行結果
---------------------------
Hello, World!
---------------------------
Hello, Win32 API(Delphi) World!
---------------------------
OK
--------------------------- |
---------------------------
Hello, World!
---------------------------
Hello, Win32 API(Delphi) World!
---------------------------
OK
---------------------------
Tags: Win32 API
Categories: Delphi, library, Win32 API