Failed to create COM object

Résolu
cs_Daemon80 Messages postés 33 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 21 juin 2012 - 5 avril 2012 à 16:41
cs_Daemon80 Messages postés 33 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 21 juin 2012 - 3 mai 2012 à 10:28
Bonjour à tous.
J'expose mon problème.J'essaie dans du php d'implémenter une dll codé en VB, grâce à ce bout de code :

<?php
$MADLL = new COM('MADLL.Class1') or die ("Impossible d'instancier la dll");
?>

On m'a dit d'aller voir sur ce site pour que je puisse appeler ma dll : http://php.net/manual/fr/class.com.php

Seulement voila, il me retourne l'erreur suivante :
Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `MADLL.Class1': Syntaxe incorrecte ' in C:\Program Files\EasyPHP-5.3.9\www\test.php:2 Stack trace: #0 C:\Program Files\EasyPHP-5.3.9\www\test.php(2): com->com('MADLL.Class1') #1 {main} thrown in C:\Program Files\EasyPHP-5.3.9\www\test.php on line 2

Pour information je l’exécute avec Wamp.
N'étant pas un expert en php, quelqu'un saurait d’où pourrait provenir ce problème?
Merci de vos réponses.
A voir également:

15 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
11 avril 2012 à 12:49
Bonjour,

En .NET, ce n'est pas RegSvr qu'il faut utiliser, mais :
msdn.microsoft.com/en-us/library/tzat5yw6(v=vs.71).aspx

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
12 avril 2012 à 18:29
Bonjour,

C:\Users\Administrateur\Documents\Visual Studio 2008\Projects\MADLL\MADLL\bin\Release\MADLL.dll
Contient des espaces, mets "
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm.exe "C:\Users\Administrateur\Documents\Visual Studio 2008\Projects\MADLL\MADLL\bin\Release\MADLL.dll"

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
13 avril 2012 à 12:10
Bonjour,

Voir, si tu arrives à appeler tes fonctions sans pb, pas de soucis à te faire, sinon, un Warning n'est pas une erreur, mais peut en cacher une.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
3
cs_Daemon80 Messages postés 33 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 21 juin 2012
3 mai 2012 à 10:28
Bonjour, j'ai trouvé la commande exact pour enregistrer ma dll et cela fonctionne dans ma page php, je n'ai plus l'erreur "Faile to create com object"

cmd -> C:\Users\Administrateur>C:\Windows\Microsoft.Net\Framework\v2.0.50727\RegAsm.exe /codebase /tlb C:\Windows\System32\MADLL.dll

Il me répond que ma bibliothèque de type a été inscrite avec succès.
Encore merci pour tes réponses.
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
5 avril 2012 à 19:35
Bonjour,

Quelle version de VB ?
Es-tu sûr d'avoir les runtimes/framework adéquate ?

Comment est constitué ta DLL ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
0
cs_Daemon80 Messages postés 33 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 21 juin 2012
6 avril 2012 à 09:19
Bonjour,

J'utilise la version 2008 de VB.
Ma DLL est constitué de fonctions qui gère l'affichage de différentes dates et elle gère également des opérations.
Que veux-tu dire par runtimes/framework? Histoire que je puisse résoudre mon problème tout en comprenons.
Merci de ta réponse.
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
6 avril 2012 à 12:39
Bonjour,

Pour .NET 2008, il faut le framework.NET 3.5.
Ensuite, as-tu enregistré ta DLL (si tu l'a compilée sur la même machine que le serveur, elle l'est, sinon, il faut le faire manuellement (enfin taper la bonne commande).

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
0
cs_Daemon80 Messages postés 33 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 21 juin 2012
11 avril 2012 à 10:15
Bonjour,

J'ai vérifier et j'ai bien le Framework 3.5 sur VB 2008.
Ensuite oui j'ai bien compilé ma DLL sur ma machine serveur.
Mais le problème persiste, j'ai toujours l'erreur : 'Failed to create COM object `MADLL.Class1'
Peut être un problème venant de WAMP, je ne sais pas :s
Merci encore pour ta réponse.
0
cs_Daemon80 Messages postés 33 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 21 juin 2012
11 avril 2012 à 10:45
Tout compte fait j'ai voulu vérifier si ma DLL était bien enregistrée et j'ai éxecuté la commande suivante ->'regsvr32 MADLL.DLL'
Il m'affiche une fenêtre avec l'erreur suivante :
Echec de chargement du module "aspSmartUpload.dll"

Vérifiez que le fichier binaire est stocké à l'emplacement désigné par le chemin d'accès spécifié ou déboguez le pour rechercher d'éventuels problèmes de fichiers .DLL binaires ou dépendant.

Le module spécifié est introuvable.
.
0
cs_Daemon80 Messages postés 33 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 21 juin 2012
11 avril 2012 à 15:24
Merci pour ta réponse, mais quand j'utilise 'regasm' dans la ligne de commande, il me dit qu'il n'est pas reconnu.Faut-il l'utiliser dans une ligne de commande propre à VB 2008 tel que Visual Studio 2008 commande prompt ou il y a t-il un autre moyen?
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
11 avril 2012 à 19:08
Bonjour,

Car, le dossier contenant l’exécutable n'est pas présent dans la variable d'environnement PATH, je crois.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
0
cs_Daemon80 Messages postés 33 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 21 juin 2012
12 avril 2012 à 14:47
Bonjour,

J'ai cherché l'emplacement de regasm dans le dossier Microsoft.NET et j'ai testé dans la ligne de commande :

C:\Users\Administrateur> C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm.exe (Emplacement de la dll)C:\Users\Administrateur\Documents\Visual Studio 2008\Projects\MADLL\MADLL\bin\Release\MADLL.dll

Il me met l'erreur suivante :

RegAsm : error RA0000 : Impossible de trouver l'assembly d'entrée 'C:\Users\Administrateur\Documents\Visual' ou une de ses dépendances.

Que veut-il dire par assembly d'entrée?
0
cs_Daemon80 Messages postés 33 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 21 juin 2012
13 avril 2012 à 10:40
Bonjour,

Merci pour ta solution, il m'affiche par la suite ce message :

Microsoft (R) .Net Framework Assembly Registration Utility 2.0.50727.5420
Copyright (C) Microsoft Corporation 1998-2004. Tous droits réservés

RegAsm : warning RA0000 : Aucun type n'était inscrit

Dois-je prendre le warning pour une erreur ou je n'en prends pas compte?
0
cs_Daemon80 Messages postés 33 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 21 juin 2012
26 avril 2012 à 15:39
Bonjour, c'est ok pour le warning mais au niveau de l'appel de fonction en php, comment cela se déroule?Si il y en a qui des tutos concernant ou un cours sa serait gentil, car la niveau php je suis pas au top.
Merci.
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
26 avril 2012 à 18:45
Bonjour,

Je pense qu'il faut d'abord instancier la classe, puis appeler les membres comme pour une classe PHP.
je n'ai jamais utilisé cela.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
0
Rejoignez-nous