Hello, Win32 API(D言語) World!
Posted on 5月 4th, 2012 by cx20
Win32 API(D言語)
Win32 API は、Windows の機能にアクセスする為の API(Application Programming Interface)である。
以下は D言語 からの呼出し例である。
D言語では、Platform SDK のヘッダファイル相当のものがプロトタイプ宣言されている為、基本的な Win32 API であれば、C/C++ の場合と同様に、呼び出すことが可能となっている。
ソースコード
import std.c.windows.windows;
int main( char[][] args )
{
MessageBoxA( null, "Hello, Win32 API(D) World!", "Hello, World!", MB_OK );
return 0;
} |
import std.c.windows.windows;
int main( char[][] args )
{
MessageBoxA( null, "Hello, Win32 API(D) World!", "Hello, World!", MB_OK );
return 0;
}
Win32 API のプロトタイプ宣言(参考)
extern (Windows)
{
:
int MessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType);
int MessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType);
:
} |
extern (Windows)
{
:
int MessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType);
int MessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType);
:
}
また、Win32 データ型に関しても、同じ名前の型が、D言語用に定義されている為、特段、言語の差異を意識することなく使うことが可能となっている。
Win32 データ型 |
C/C++ データ型 |
D言語データ型 |
HANDLE |
void * |
void * |
BYTE |
unsigned char |
ubyte |
SHORT |
short |
short |
WORD |
unsigned short |
ushort |
INT |
int |
int |
UINT |
unsigned int |
uint |
LONG |
long |
int |
BOOL |
int |
int |
DWORD |
unsigned long |
uint |
ULONG |
unsigned long |
uint |
CHAR |
char |
char |
WCHAR |
wchar_t |
wchar |
LPSTR |
char * |
char * |
LPCSTR |
const char * |
const(char) * |
LPWSTR |
wchar_t * |
wchar * |
LPCWSTR |
const wchar_t * |
const(wchar) * |
FLOAT |
float |
float |
DOUBLE |
double |
double |
LONGLONG |
__int64 |
long |
DWORD64 |
unsigned __int64 |
ulong |
コンパイル方法(Digital Mars D コンパイラ)
実行結果
---------------------------
Hello, World!
---------------------------
Hello, Win32 API(D) World!
---------------------------
OK
--------------------------- |
---------------------------
Hello, World!
---------------------------
Hello, Win32 API(D) World!
---------------------------
OK
---------------------------
Tags: Win32 API
Categories: D言語, library, Win32 API