Scrapel
Messages postés32Date d'inscriptionlundi 7 juillet 2014StatutMembreDernière intervention18 novembre 2014
-
7 juil. 2014 à 15:03
Scrapel
Messages postés32Date d'inscriptionlundi 7 juillet 2014StatutMembreDernière intervention18 novembre 2014
-
7 juil. 2014 à 16:45
Bonjour !
Je retravaille un code source d'un vieux programme (écrit par quelqu'un d'autre !), mais il y a un problème à la compilation "Compile error : Variable uses an Automation type not supported in Visual Basic"
Et il surligne la ligne suivante :
"Public Declare Function CLSIDFromString Lib "ole32.dll" (ByVal lpszProgID As Any, pCLSID As GUID) As Long"
(Et après j'ai le même problème sur la ligne suivante : "Public Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (PicDesc As PicBmp, RefIID As GUID, ByVal fPictureOwnHandle As Long, IPic As IPicture) As Long")
Je débute en VB6 et je ne comprends pas cette erreur et comment y rémédier.
Whismeril
Messages postés18991Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mars 2024654 7 juil. 2014 à 15:57
Vérifie que ole32.dll est bien référencé dans ton projet.
Dans l'autre post, tu parlais d'un répertoire de système 64 bits, donc il est probable que tu n'aies pas cette dll sur ton PC.
Scrapel
Messages postés32Date d'inscriptionlundi 7 juillet 2014StatutMembreDernière intervention18 novembre 2014 7 juil. 2014 à 16:37
Merci pour ta réponse.
Ah oui, le problème vient sûrement de la référence.
La dll ole32.dll est bien dans C:\windows\sysWOW64 et elle est enregistrée (avec regsvr32) mais quand je vais dans référence, puis browse et que je la séléctionne dans sysWOW64, le message suivant apparait "Can't add a reference to the specified file". Alors que pour les autres dll il n'y a pas de problème.
En réalité le code source semble provenir du travail réalisé par yomm : http://codes-sources.commentcamarche.net/source/33733-yommexplorerocx-pour-ce-qui-veulent-un-vrai-explorateur-windows j'ai donc dû avoir un problème en utilisant ces fichiers. L'utilisation de ole32.dll se fait dans Declaration.bas.
-Initialement je voulais juste ajouter une référence à l'ocx du yommexplorer mais cela ne marchait pas : "Name conflicts with existing module, poject or object library".
-Donc au lieu de référencer l'ocx, j'ai directement ajouté à mon projet les fichiers.bas du dossier modules et les fichiers .cls du dossier class modules et le fichier .ctl aux contrôles.
Mais dans tous les cas il y a un problème avec ole32.dll je pense car j'ai essayé d'ouvrir un nouveau projet et d'ajouter la référence à ole32.dll et cela ne fonctionne pas toujours le message "Can't add a reference to the specified file." .... J'ai essayé aussi de retélécharger ole32.dll et d'utiliser celui là mais le problème persiste.
Peut-être qu'il ne faut pas passer pas ole3.dll mais juste utiliser l'ocx YommExplorerOCX.ocx mais comme dit précédemment cela ne marche pas non plus ...'"name conflicts with existing module, ..."
Scrapel
Messages postés32Date d'inscriptionlundi 7 juillet 2014StatutMembreDernière intervention18 novembre 2014 7 juil. 2014 à 16:45
Ne vous prenez pas la tête. Je ne sais pas pourquoi, j'ai fermé le projet et je l'ai rouvert et ça marche. J'attends un peu avant de confirmer que le sujet est résolu mais on dirait que oui !!!!!!!!!!!!!
Ah ça fait plaisir, je vais enfin pouvoir commencer à améliorer le projet (pour l'instant je me contentais d'essayer de recompiler le fichier source d'origine...). Merci beaucoup !!!