Forum und email

W32api Functions

소개

This extension is a generic extension API to DLLs. This was originally written to allow access to the Win32 API from PHP, although you can also access other functions exported via other DLLs.

Currently supported types are generic PHP types (strings, booleans, floats, integers and nulls) and types you define with w32api_deftype().

Note: This extension has been moved to the » PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

Warning

이 확장 모듈은 실험적입니다. 이 확장 모듈의 작동 -- 함수의 이름과 이 확장 모듈에 대한 모든 문서 자료에 대해서 -- 은 이후의 PHP 릴리즈에서 예고 없이 변경될 수 있습니다. 이 확장 모듈의 사용은 사용자의 책임하에 이루어집니다.

요구 조건

This extension will only work on Windows systems.

설치

이 함수들은 설치하지 않아도 사용할 수 있습니다; PHP 코어의 일부입니다.

실행시 설정

이 확장은 php.ini 설정이 존재하지 않습니다.

자원형

This extension defines one resource type, used for user defined types. The name of this resource is "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)

예제

This example gets the amount of time the system has been running and displays it in a message box.

Example#1 Get the uptime and display it in a message box

<?php
// Define constants needed, taken from
// Visual Studio/Tools/Winapi/WIN32API.txt
define("MB_OK"0);

// Load the extension in
dl("php_w32api.dll");

// Register the GetTickCount function from kernel32.dll
w32api_register_function("kernel32.dll"
                         
"GetTickCount",
                         
"long");
                         
// Register the MessageBoxA function from User32.dll
w32api_register_function("User32.dll",
                         
"MessageBoxA",
                         
"long");

// Get uptime information
$ticks GetTickCount();

// Convert it to a nicely displayable text
$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));

// Display a message box with only an OK button and the uptime text
MessageBoxA(NULL
            
$str
            
"Uptime Information"
            
MB_OK);
?>

Table of Contents