Activex control

Résolu
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 25 août 2010 à 21:57
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 26 août 2010 à 16:54
Bonsoir à tous

J'ai crée un control il fonctionne aussi j'ai crée le fichier ocx et enregistrer dans le system32 directory

Dans mon projet j'ai ajouté au tableau des components le control et placé sur la form
jusque la tout marche bien

le problème est s je modifie le control
et make ocx de nouveau quand j'ouvre mon projet
j'ai une erreur can load ocx

merci

10 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 août 2010 à 14:06
Salut,

Ok, mais à la prochaine, compile le en mode compatibilité binaire ou de projet histoire de ne pas avoir à refaire un ocx à chaque compilation... c'est quand même beaucoup plus pratique.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
3
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
26 août 2010 à 14:37
OUI BIEN SUR
normalement il faut seulement faire make ocx
et pas besoin de tout récrire
3
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
25 août 2010 à 22:19
je pense que tu dois donner plus de détails...
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
25 août 2010 à 23:06
Salut,

Est-ce que tu le compile en mode de compatibilité binaire ? Sans cà, la nouvelle référence écrase l'ancienne référence d'activeX, et forcément, l'exe tout comme ton projet ne peux pas retrouver la version correspondante à l'activeX que tu as rajouté dans ton formulaire.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0

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

Posez votre question
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
26 août 2010 à 09:57
Bonjour
DARSIDIOUS salut
comment savoir si je compile en mode binaire ?
Je vais tenter de mieux expliquer
j'ai crée un control activex et après l'avoir testé je l'ai compilé et crée le fichier ocx
make ocx press ok
le fichier a été crée sans problème
Dans mon projet(standard exe project) j'ai ajouté le control (project -> components -> check
apply ok)
le control a apparut dans le toolbox
je l'ai placé sur les forms jusqu'à la tout marche bien
j'ai du modifié le control
donc j'ai sauvegardé et fermé mon projet
et ouvert le projet qui test le control
modifié le control testé et ensuite make ocx
j'ai confirmé le message comme quoi un ocx existait déja et le remplacer par celui ci
press ok l'ocx a été crée et remplace l'ancien
Quand j'ai réouvert mon projet j'ai eu l'erreur
suivante "E:/BBBPROJ/fichier.ocx can't be loaded continue ..."
(normallement j'ai le message "fichier.ocx is upgraded to ver xx " et le projet s'ouvre sans problème)
si je dis oui le projet est chargé sans le control il ne se trouve plus dans le toolbox

Merci à vous
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 août 2010 à 10:06
Salut,

C'est pas compilé en mode "binaire" mais compilé en mode "compatibilité binaire", c'est différent.

Comme tu l'as dit toi même : "normallement j'ai le message "fichier.ocx is upgraded to ver xx " et le projet s'ouvre sans problème", ca c'est pour le mode compatibilité binaire ou par projet, s'il ne te dit pas cà, c'est que tu l'as compilé en mode "sans compatibilité", et du coup, un nouveau CLSID est attribué à chaque compilation, et vu que tu as écrasé l'ancien fichier ocx, tu as en base de registre un CLSID qui est référencé dans ton projet incorporant ton contrôle ocx, mais qui ne pointe vers rien, d'où le message d'erreur.

Il faut donc que tu compile en mode compatibilité binaire pour conserver la compatibilité (sans devoir recompiler ton projet d'origine : l'exe lui même est compatible avec la nouvelle version de l'ocx), ou en mode compatibilité de projet (à ce moment là, tu es obligé de recompiler l'exe à chaque nouvelle version).

Pour cela, ca se passe dans l'onglet "compilation" de la fenêtre de propriété de ton projet si ma mémoire est bonne.

Bien entendu, le mode de compatibilité binaire est le moins souple pour le versionning : tu es limité à modifier l'implémentation, mais la moindre modification de l'interface de tes classes empêche la compatibilité binaire (ce qui est tout à fait logique).
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
26 août 2010 à 13:46
la methode manuelle recrire de nouveau
Enfin de comptes j'ai crée de nouveau le control
crée le ocx
dans mon projet ajouter de nouveau le control
dans toutes les forms ou il était placé
pour verifier j'ai modifié le control
et remplqcer l'ocx
quand j'ai réouvert le projet j'ai reçu le messge
ver x of E/DDD/bbb.ocx is not registered the control will be upgrated to ver yy
donc tout va bien
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 août 2010 à 15:48
Salut,

Oui, mais si le mode de compatibilité est bien sélectionné, sinon, si aucun mode de compatibilité n'est sélectionné, tu n'as plus qu'à tout refaire à chaque compilation, c'est pour cà que j'insiste sur cà.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
26 août 2010 à 16:48
Est-ce que cette histoire de compatibilité est valable aussi pour les exe activex standalone ?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 août 2010 à 16:54
Salut,

Exactement, tout les activeX, (ocx, dll ou exe) nécessite une compatibilité binaire pour ne pas à avoir à recompiler tout les projets qui en dépendent.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
Rejoignez-nous