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;
}

Win32 API のプロトタイプ宣言(参考)

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 コンパイラ)

C:¥> dmd hello.d

実行結果

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

Tags:

Categories: D言語, library, Win32 API

コメントを残す

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

WP-SpamFree by Pole Position Marketing