Ver Mensaje Individual
  #5 (permalink)  
Antiguo 29/07/2004, 22:47
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Estube probando tu ejemplo ...

No me funcionó con un error como el que mostrarstes en principio.

Remitiendome al manual de PHP veo esto:

w32api_register_function
(4.2.0 - 4.2.3 only)

(lo probé en PHP 4.3.2 bajo W98) ...

"Parece" que el manejo de wind32API cambió (pero no así la documentación de forma "oficial"). En algunos sítios hablan de otra forma de controlar el objeto:

Ejemplo:
Código PHP:
<?php
$api 
= new win32;
$api->registerfunction("long MessageBox (long hWnd, string lpText, string
lpCaption, long uType) from User32.dll"
);

if (
$api->MessageBox(0"testing""testing somemore"0) == 0)
{
echo 
"failed";
}else{
echo 
"succeeded";
}
?>
((no conozco el API de windows) .. y para colmo se me cuelga Apache al querer ejecutarlo).

En PHP 5 .. parecer que existe la extensión "FFI" que sustituye al proyecto (nunca terminado al parecer "win32Api"):

Ejemplo para PHP 5 usando php_ffi.dll
Código PHP:
<?php
$windows 
= new ffi ("[lib='user32.dll'] int MessageBoxA( int handle, char *text, char *caption, int type );" );

echo 
$windows->MessageBoxA(0"Message For You""Hello World"1);
?>
http://pecl.php.net/package/ffi

Por lo menos estas "FFI" dicen que soportarían cualquier tipo de "libreria" .. ya sea una .dll (windows) o un .so (linux o como sean ...)

En conclusión
Si usas PHP versiones entre la 4.2.0 y 4.2.3 podrías usar las win32API funciones que ves en el manual (obsoleto y no actualizado a la fecha).

Si necesitas acceder a API de Windows (Win32 .. etc) tendrías que usar PHP 5 con la extensión "FFI" (De esto parece que hay más documentación).


Un saludo,

PD: Fuentes ... google y viendo el "la página en caché" .. por qué lo que es en PHP.net además de no actualizar la documentación sobre win32 .. quitaron los comentarios de los usuarios donde hacían mención a todo esto.