utilisation d'une dll dans une page php

Petit nouveau ! | 4 Messages

15 sept. 2008, 16:34

Bonjour

j'ai besoin d'accéder à une dll pour récupérer des informations.
le problème c'est que je ne sais pas comment faire

j'ai un serveur wamp
la fonction dl ne marche pas, ou plus... (PHP Version 5.2.3).
j'ai le message suivant
Warning: dl() [function.dl]: Not supported in multithreaded Web servers - use extension=php_w32api.dll in your php.ini

j'ai donc activé l'extension dans le php.ini et j'ai également bien vérifié la présence de la dll dans le dossier adéquat. mais je n'obtiens pas plus de résultat.

en recherchant sur le net, j'ai trouvé peut être un début de réponse avec quelque chose qui s'appelle ffi.
le truc c'est qu'il n'y a pas beaucoup d'infos et j'ai pas vraiment comprises celles que j'aie trouvées. :oops:

Quelqu'un a-t-il déjà accédé à une dll ou utilisé ffi?
si oui, je te(vous) remercie d'avance d'éclairer ma lanterne

ben.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

15 sept. 2008, 16:43

Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "PHP avancé".

Mammouth du PHP | 1668 Messages

15 sept. 2008, 17:57

Je vais peut-être dire une bétise, mais, oui ça m'arrive tout le temps ^^, pourquoi ne pas passer par la console*, ou de passer par une extension C/C++ ou de le passer carrément en extension ?

* : Je galère pas mal en C++ pitité, pas de cours sur les dll ^^
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

ViPHP
ViPHP | 5924 Messages

15 sept. 2008, 18:20

C'est quoi ta dll ?

Petit nouveau ! | 4 Messages

16 sept. 2008, 14:56

ma dll, c'est une dll qui a été faite par un prestataire pour une identification SSO.
donc c'est pas du "pur" :shock: windobs....
mon plus gros problème, en fait, c'est que l'on m'impose de rester en php...
j'ai besoin de récupérer des variables dans cette dll mais là, je séche.... :cry:

la procédure qui m'a été communiquée ne marche pas, ou plutot ne marche plus en php 5.

je cheche l'équivalent de la fonction de la fonction dl(), en résumé...

jusqu'à présent, mes différentes tentatives pour accéder à cette dll se sont soldées par des échecs...
les différentes extensions que j'ai rajoutées dans mes php.ini ne m'ont pas données de résultat...
j'ai peut-être raté quelque chose... en tout cas, chuis dans la panade :?

Eléphant du PHP | 422 Messages

16 sept. 2008, 19:13

Point 1 : avec phpinfo, vérifier que l'extension w32api est bien activée.

Point 2 : tu dis accéder à une variable dans la DLL. Mes souvenirs d'accès à des DLL sont lointains, donc vagues, mais tout ce qu'on peut faire, c'est d'accéder à des fonctions de la DLL.

Après, il faut travailler avec w32api_register_function() pour activer la fonction que tu dois appeler, puis w32api_invoke_function(). Je dis ça sans l'avoir testé, mais c'était avec des méthodes similaires qu'on bossait en Visual Basic. Mais à mon avis, galère ... car il va falloir passer des arguments au format C/C++ Et tout ça sans la moindre documentation

Bon courage.

ViPHP
ViPHP | 5924 Messages

16 sept. 2008, 20:01

dl() charge une extension, pas une dll…

Petit nouveau ! | 4 Messages

18 sept. 2008, 15:50

ok, je me suis mal exprimé

donc j'ai une dll => madll.dll
ma dll contient une classe monUtilisateur
et je veux utiliser une fonction LireInfoUtilisateur()

dans le php.ini,
j'ai rajouté "extension=php_w32api.dll"
dans le dossier des extensions, j'ai ajouté php_w32api.dll

après avoir rebooté mon serveur de test, je n'ai pas de trace de wapi32 avec phpinfo()...

disons que ça part mal...et d'après ce que j'ai pu voir par ailleurs, il semblerait que que w32api ne fonctionne plus avec php5...

apparemment, il y aurait une piste avec l'extension php_ffi.dll mais là c'est pareil,
les résultats ne sont pas probants, loin de là. mais là, ça vient peut-être de moi

Si quelqu'un a une idée, je suis preneur

PS:En même temps, je reconnais que je suis pas un foudre de guerre en php
et que là, je suis bien obligé de me prendre la tête...

:roll:

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

ViPHP
ViPHP | 3607 Messages

18 sept. 2008, 16:31

Et une question peut-être bête, ton prestataire, il saurait pas par hasard faire du SAV, pour te mettre sa dll en marche?
Ou alors te recoder ça en php, sous forme d'extension...?

Petit nouveau ! | 4 Messages

18 sept. 2008, 16:39

alors moi,je suis pas une fusée, mais alors du côté du prestataire c'est pas la foire à la vitamine...
en ce moment, il répond pas aux mails et est en réunion quand on l'appelle...
Donc c'est pour ça que je tente ma chance ici...

Mais dans la logique, c'est lui qui est censé me fournir ce qu'il faut...

En attendant qu'il se manifeste, j'essaie d'avancer... et de trouver de l'aide auprès d'âmes charitables :D