W32api 関数
導入
この拡張モジュールは、DLL への一般的な拡張 API です。この拡張モジュールは もともと PHP から Win32 API にアクセスできるようにするために 作成されましたが、他の DLL によりエクスポートされている他の関数にも アクセスすることができます。現在サポートされている型は、一般の PHP 型 (文字列, boolean, float, 整数, NULL) と w32api_deftype() で定義した型です。
注意: この拡張モジュールは » PECL レポジトリに移動 されており、以下のバージョン以降 PHP にバンドルされなくなっています。 PHP 5.1.0.
警告 |
この拡張モジュールは、
実験的 なものです。この拡張モジュールの動作・
関数名・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP
のリリースにおいて変更される可能性があります。
このモジュールは自己責任で使用してください。 |
要件
この拡張モジュールは Windows システムでのみ動作します。インストール手順
PHP コアに含まれるため、 追加のインストール無しで使用できます。実行時設定
設定ディレクティブは定義されていません。リソース型
この拡張モジュールは 1 種類のリソース型を定義し、ユーザ定義型で 使用されます。このリソースの名前は "dynaparm" です。定義済み定数
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。- DC_MICROSOFT (integer)
- DC_BORLAND (integer)
- DC_CALL_CDECL (integer)
- DC_CALL_STD (integer)
- DC_RETVAL_MATH4 (integer)
- DC_RETVAL_MATH8 (integer)
- DC_CALL_STD_BO (integer)
- DC_CALL_STD_MS (integer)
- DC_CALL_STD_M8 (integer)
- DC_FLAG_ARGPTR (integer)
例
以下の例は、システムの実行時間を取得し、メッセージボックスに 表示するものです。例 2427. uptime を取得し、メッセージボックスに表示する
<?php
// 必要な定数を定義します。これは
// Visual Studio/Tools/Winapi/WIN32API.txt から取得できます。
define("MB_OK", 0);
// 拡張モジュールを読み込みます。
dl("php_w32api.dll");
// kernel32.dll の GetTickCount 関数を登録します。
w32api_register_function("kernel32.dll",
"GetTickCount",
"long");
// User32.dll の MessageBoxA 関数を登録します。
w32api_register_function("User32.dll",
"MessageBoxA",
"long");
// uptime 情報を取得します。
$ticks = GetTickCount();
// それを読みやすい形式に変換します。
$secs = floor($ticks / 1000);
$mins = floor($secs / 60);
$hours = floor($mins / 60);
$str = sprintf("You have been using your computer for:" .
"\r\n %d Milliseconds, or \r\n %d Seconds" .
"or \r\n %d mins or\r\n %d hours %d mins.",
$ticks,
$secs,
$mins,
$hours,
$mins - ($hours*60));
// OK ボタンと uptime のみのメッセージボックスを表示します。
MessageBoxA(NULL,
$str,
"Uptime Information",
MB_OK);
?>
目次
- w32api_deftype — 他の w32api_functions で使用するために型を定義する
- w32api_init_dtype — データ型 typename のインスタンスを作成し、そこに渡された値を代入する
- w32api_invoke_function — 関数名の後ろに指定された引数を指定し、関数 funcname を実行する
- w32api_register_function — ライブラリの関数 function_name を PHP に登録する
- w32api_set_call_method — 使用するコール方式を設定する
- W32apiのページへのリンク