Problème d'appel de fonction d'une dll [Résolu]

cs_Daemon80 35 Messages postés mercredi 21 décembre 2011Date d'inscription 21 juin 2012 Dernière intervention - 30 mai 2012 à 10:26 - Dernière réponse : cs_Daemon80 35 Messages postés mercredi 21 décembre 2011Date d'inscription 21 juin 2012 Dernière intervention
- 1 juin 2012 à 09:16
Bonjour, je débute en php et j'ai besoin de ce langage pour développer ma dll.
J'ai créer une dll écrite en VB6 sous Seven avec des fonctions qui incrémente et décrémente une variable.
En référençant cette dll dans un autre programme VB6 avec une fenêtre d'application contenant un bouton et un textbox(pour tester), j'arrive à incrémenter et décrémenter une valeur.
Maintenant pour référencer la dll en php il faut que je puisse d'abord l'enregistrer dans le système avec regsvr32 "Emplacement de la dll", aucun problème et l'enregistrement a été fait correctement.

Je suis allé sur le site : http://php.net/manual/es/class.com.php

Pour référencer une dll en php il faut utilisé les objets COM, j'ai donc pris ce bout de code dans ma page php :

Code php :

<?php
$MADLL = new COM('Project1.Class1') or die ("Impossible d'instancier la dll");
echo "dll chargé avec succés";
echo $MADLL->Increment(5)
?>


Project1 étant le nom de ma dll VB6 et class1 étant la classe utilisé en VB6 pour compiler mon programme.
Si la dll n'a pas put être appelée il me renvoi "Impossible d'instancier la dll" mais je n'ai pas ce soucis la, il me renvoi bien comme quoi il arrive bien a appeler la dll et j'ai le deuxième echo qui s'affiche mais le problème vient de la ligne d'après.

Il me renvoi l'erreur suivante :

Fatal error: Call to undefined method com::Increment(5) in C:\wamp\www\Test_dll\test.php on line 4

Apparemment il n'arrive pas à appeler la méthode "Increment" de ma dll.
Quelqu'un aurait une solution?
Merci.
Afficher la suite 

Votre réponse

3 réponses

Lyle56 240 Messages postés jeudi 1 mai 2008Date d'inscription 19 juillet 2012 Dernière intervention - 30 mai 2012 à 14:34
+3
Utile
Bonjour,

Vue sur http://docs.progmatique.fr/Documentation-PHP/faq.com.html#faq.com.q1 :

J'ai compilé une DLL pour calculer quelque chose. Y a-t-il un moyen d'utiliser cette DLL sous PHP ?

    Si c'est une DLL simple, il n'y a aucun moyen pour le moment de l'utiliser avec PHP. Si la DLL contient un serveur COM, vous pourrez l'utiliser si elle implémente l'interface IDispatch.


Je pense qu'au niveau de ta DDL il doit manquer quelque chose pour pouvoir ensuite communiqué avec PHP.
[Je ne suis pas spécialiste des DLL et de VB]

Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Lyle56
katsankat 577 Messages postés vendredi 30 décembre 2005Date d'inscription 12 juillet 2012 Dernière intervention - 1 juin 2012 à 02:44
+3
Utile
Salut, par défaut les dlls ActiveX n'exportent pas de fonctions car elles n'ont pas de fichier .def : http://bbil.developpez.com/traductions/vb6/create-dll/

Drôle de hack.
Sinon écrire la dll en C (sage décision).
Ou alors directement écrire en C un module PHP: PHP a plein de modules qu'on peut charger ou pas, exemple MySQL ou GD.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de katsankat
cs_Daemon80 35 Messages postés mercredi 21 décembre 2011Date d'inscription 21 juin 2012 Dernière intervention - 1 juin 2012 à 09:16
0
Utile
Ok merci pour vos réponses. Il n'y a donc aucun moyen d'exporter les fonctions de la dll VB en php, je vais essayer de trouver autre chose.
Encore merci.
Commenter la réponse de cs_Daemon80

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.