Précédent   Forum des professionnels en informatique > PHP > Outils
Outils Forum d'entraide sur les outils pour développeurs PHP : EDI, installation, administration... Avant de poster : FAQ outils, toutes les FAQ PHP et les comparatifs
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/09/2011, 11h03   #1
Invité de passage
 
Homme
Inscription : août 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : août 2011
Messages : 21
Points : 4
Points : 4
Par défaut Failed to create COM

Bonjour à tous,

Pour les besoin d'une application, je dois utiliser une librairie dynamique.

En développement, sur un Windows vista avec WAMP 2, j'instancie mon objet comme ceci :

Code :
$myBOB = new COM("BOBDev.BOBDATA") or die("Can't start BOB !");
J'ai au préalable enregistré la dll en faisant :

Jusque là, j'arrive à instancier et utiliser mon objet COM.

Mais lorsque j'ai mis en place la version en production sur XP (toujours avec WAMP 2), j'ai eu droit à cette erreur :

Code :
Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `BOBDev.BOBDATA': Le module spécifié est introuvable. ' in C:\wamp\www\Tests\test.php:26 Stack trace: #0 C:\wamp\www\Tests\test.php(26): com->com('BOBDev.BOBDATA') #1 {main} thrown in C:\wamp\www\Tests\test.php on line 26
J'ai pourtant bien enregistré bobdev.dll (j'obtiens le message de succès).

Je ne suis que très peu familier avec COM. J'ai lu dans le manuel de php que la construction d'un objet COM attend, je cite :

Citation:
Peut être un ProgID, un Class ID ou un Moniker qui nomment un composant à charger. Un ProgID est typiquement une application ou le nom d'une DLL, suivi d'une période, suivi par le nom de l'objet. e.g : Word.Application. Un Class ID est un UUID qui identifie de manière unique une classe donnée. Un Moniker est une manière spéciale de nommage, similaire dans le concept au schéma d'URL, qui identifie une ressource et spécifie comment elle doit être chargée. Par exemple, vous pouvez charger Word et prendre un objet représentant un document Word en spécifiant le chemin complet du document Word comme nom de module, ou bien, vous pouvez utiliser LDAP: comme un Moniker pour utiliser l'interface ADSI pour LDAP.
Pour un ProgID, nomdll.nomObjet
Le nom de la dll, je connais, mais comment connaitre le nom de l'objet? (le BOBDATA vient d'un code que j'avais récupéré sur la machine, écrit par un ancien développeur qui lui même avait récupérer ce code quelque part...)
Ai-je oublié quelque chose?
Y-a-t'il un moyen de résoudre ce problème?

Merci de m'avoir lu,

Romain
Wilburdiskedur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 20h32   #2
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
t'a cherché les chaines lisibles de la dll ?
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 09h48   #3
Invité de passage
 
Homme
Inscription : août 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : août 2011
Messages : 21
Points : 4
Points : 4
Bonjour,

Citation:
Envoyé par gene69 Voir le message
t'a cherché les chaines lisibles de la dll ?
Merci pour ta réponse, mais qu'entends-tu par là?



En continuant d'effectuer des tests, j'ai plus l'impression que le problème ne se situe pas au niveau du code PHP ("BOBDev.BOBDATA" semble on ne peut plus correct), mais bien à celui de l'enregistrement de la DLL.

Je suis loin d'être un expert dans ce petit monde que je me contentais d'utiliser "bêtement" jusqu'à présent. Apparemment, je dois oublier ou ne pas avoir connaissance de certaines notions relatives aux DLL, à leur enregistrement et utilisation.

Si quelqu'un avait le temps de présenter les points essentiels ou de me rediriger vers un tuto, ce serait bien sympa !


Romain
Wilburdiskedur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h23.


 
 
 
 
Partenaires

Hébergement Web