traduction de cette page (jai pas lu toute les reponses), Non c'est pas possible SAUF si ta DLL implémente un serveur COM (ensuite tu passe par les fonctions COM de php)1. I have built a DLL to calculate something. Is there any way to run this DLL under PHP ?
If this is a simple DLL there is no way yet to run it from PHP. If the DLL contains a COM server you may be able to access it if it implements the IDispatch interface.
"... demanda à voir le CV du recruteur pour être sûr que le chef du personnel était compétent".
Le module en question est nommé "API windows" dans la docAvertissement
Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez ce module à vos risques et périls.
voici la liste complete des fonctions dispo :Introduction
Cette extension est une API générique d'accès aux DLL. Elle a été originalement écrite pour accéder aux API Win32 depuis PHP, mais vous pouvez l'utiliser pour accéder à d'autres fonctions exportées par des DLL.
Actuellement, les types supportés sont les types PHP génériques (chaînes de caractères, booléens, nombres, entiers et NULL), et les types que vous définissez avec w32api_deftype().
J'espére que ca répond a ta question, sinon envoie moi un MP et on cherchera plus en avantw32api_deftype -- Définit un type pour utilisation avec les fonctions windows API
w32api_init_dtype -- Crée une instance de type de données et la remplit
w32api_invoke_function -- Appelle une fonction windows 32
w32api_register_function -- Enregistre une fonction win32 dans PHP
w32api_set_call_method -- Modifie le type d'appel de la fonction
"... demanda à voir le CV du recruteur pour être sûr que le chef du personnel était compétent".
Salut,
je sais pas si tu te rapelle de ce post mais tu m'y a proposé de t'envoyé un mp si j'avais du nouveau. Ce que je fais ici.
J'ai essayé d'utiliser l'api "php_w32api.dll" et voilà le message que j'ai eu :
"Warning: dl(): Not supported in multithreaded Web servers - use extension statements in your php.ini in c:\program files\easyphp1-8\www\simul\index.php on line 4"
J'ai bien déclaré "extension=php_w32api.dll" dans tous les php.ini que j'ai trouvé mais ça n'a rien changé!
Si t'as une idée...
"... demanda à voir le CV du recruteur pour être sûr que le chef du personnel était compétent".
le nouveau package est là : http://pecl.php.net/package/ffiNote : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.
autrement dit l'exemple "officiel" marche difficilement en php 5, mais si mes souvenirs sont bons easyphp est en 4.X => ca devrais pas venir de làLa fonction dl() est déprécié depuis PHP 5. Utilisez les directives d'extensions de chargement à la place.
<?php
php_info();
?>
Si c'est pas le cas =>Win32 API
Win32 API Support enabled
"... demanda à voir le CV du recruteur pour être sûr que le chef du personnel était compétent".
Code : Tout sélectionner
w32api_register_function("pcshll32.dll", "hllapi","string");
w32api_invoke_function($FUNC, $DATA_STRING, $DATA_LENGTH, $RETURN);
<?php
if (!extension_loaded ('Win32 API') && !dl("php_w32api.dll")) {
echo "Unable to load php_w32api.dll";
exit;
}
$api = new win32;
$api->registerfunction("bool QueryPerformanceCounter (float &lpPerformanceCount) From kernel32.dll");
$api->registerfunction("bool QueryPerformanceFrequency (float &lpPerformanceFrequency) From kernel32.dll");
$api->QueryPerformanceCounter($a);
$api->QueryPerformanceFrequency($b);
$c = $a/$b;
$days = floor($c / 86400);
echo gmstrftime("System uptime is $days Days, %H Hr, %M Min, %S Sec<br>", $c);
?>
Mais (parce qu'il y'a un mais) plus je lis la doc plus j'ai l'impression qu'ils limitent cette extention aux seules API officielles de windows"... demanda à voir le CV du recruteur pour être sûr que le chef du personnel était compétent".