Hello, Win32 API(PHP) World!

Posted on 4月 29th, 2012 by cx20

Win32 API(PHP)

Win32 API は、Windows の機能にアクセスする為の API(Application Programming Interface)である。
以下は PHP にて COM ライブラリである DynamicWrapper を経由した Win32 API の呼出し例である。

なお、PHP 5.4.5 / 5.3.15 より、COM サポートは既定では組み込まれていない為、使用するには、以下の設定を追加する必要がある。

PHP 設定

[COM_DOT_NET]
extension = php_com_dotnet.dll

ソースコード

<?php
$win32 = new COM("DynamicWrapper");
$win32->Register( "user32.dll", "MessageBoxA", "i=hhsu", "f=s", "r=l" );
$win32->MessageBoxA( 0, "Hello, Win32 API(PHP) World!", "Hello, World!", 0 );
?>

なお、上記の “i=hhsu” は各引数の型を、”f=s” は呼び出し規約を、”r=l” は戻り値の型を表している。以下は主要なタイプ一覧である。詳細は「An Automation Object for Dynamic DLL Calls | Dr Dobb’s」を参照のこと。

タイプ 説明
a オートメーションオブジェクト(IDispatch*)
c 符号なし文字型(unsigned char)
d 倍精度浮動小数点数(double)
f 単精度浮動小数点数(float)
k COM オブジェクト(IUnknown*)
h ハンドル(handle)
l 整数型(long)
p ポインタ(pointer)
s 文字列(string)
t 整数型(short)
u 符号なし整数型(unsigned int)
w ワイド文字列(wide string)

実行方法

C:¥> php -f hello.php

実行結果

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

Tags:

Categories: library, PHP, Win32 API

コメントを残す

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

WP-SpamFree by Pole Position Marketing