Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mise à Jour de DLL 'maison'

4 réponses
Avatar
Driss HANIB
Bonjour à tous,

il me semble avoir déjà posé la question mais j'avoue que j'en ai oublié la
réponse ;o((
aussi je me permets de la reposer

Je suis en train de faire une DLL ActiveX qui me permet de 'piloter' WORD
(ici WORD97), (n'en déplaise au GUEUX)
Certains programmes utilisent cette DLL pour remplir des compte-rendus.
Mais je suis en train de rajouter au fur et à mesure de mes besoins quelques
fonctionnalités.
Or quand je recompile cette DLL, il me semble que les programmes compilés
qui l'utilisent 'plantent' ou plus stoppent sans aucun message d'erreur.
Lors que j'enregistre manuellement cette DLL et que je recompile les
programmes, cela repart (car je ne change pas les entrées).
Comment faire pour qu'une nouvelle compilation de cette DLL ne m'oblige pas
à la réenregistrer dans la BDR : une sorte de compatibilité ascendante..

Il me semblait qu'il fallait choisir, une certaine option de compilation..

Merci de me rafraîchir la mémoire..

Driss

4 réponses

Avatar
Jacques93
Bonjour Driss HANIB,
Driss HANIB a écrit :
Bonjour à tous,

il me semble avoir déjà posé la question mais j'avoue que j'en ai oublié la
réponse ;o((
aussi je me permets de la reposer

Je suis en train de faire une DLL ActiveX qui me permet de 'piloter' WORD
(ici WORD97), (n'en déplaise au GUEUX)
Certains programmes utilisent cette DLL pour remplir des compte-rendus.
Mais je suis en train de rajouter au fur et à mesure de mes besoins quelques
fonctionnalités.
Or quand je recompile cette DLL, il me semble que les programmes compilés
qui l'utilisent 'plantent' ou plus stoppent sans aucun message d'erreur.
Lors que j'enregistre manuellement cette DLL et que je recompile les
programmes, cela repart (car je ne change pas les entrées).
Comment faire pour qu'une nouvelle compilation de cette DLL ne m'oblige pas
à la réenregistrer dans la BDR : une sorte de compatibilité ascendante..

Il me semblait qu'il fallait choisir, une certaine option de compilation..

Merci de me rafraîchir la mémoire..

Driss





Projet => Propriétés => Composant => Cocher 'Compatibilité binaire'

me semble t-il.

--
Cordialement,

Jacques.
Avatar
patrick
bonjour,

compatiblité binaire à cocher avant de compiler

@+
patrick

"Driss HANIB" a écrit dans le message news:

Bonjour à tous,

il me semble avoir déjà posé la question mais j'avoue que j'en ai oublié


la
réponse ;o((
aussi je me permets de la reposer

Je suis en train de faire une DLL ActiveX qui me permet de 'piloter' WORD
(ici WORD97), (n'en déplaise au GUEUX)
Certains programmes utilisent cette DLL pour remplir des compte-rendus.
Mais je suis en train de rajouter au fur et à mesure de mes besoins


quelques
fonctionnalités.
Or quand je recompile cette DLL, il me semble que les programmes compilés
qui l'utilisent 'plantent' ou plus stoppent sans aucun message d'erreur.
Lors que j'enregistre manuellement cette DLL et que je recompile les
programmes, cela repart (car je ne change pas les entrées).
Comment faire pour qu'une nouvelle compilation de cette DLL ne m'oblige


pas
à la réenregistrer dans la BDR : une sorte de compatibilité ascendante..

Il me semblait qu'il fallait choisir, une certaine option de compilation..

Merci de me rafraîchir la mémoire..

Driss




Avatar
Patrick Philippot
Bonjour,

Quand on fabrique un composant COM avec VB, il y a une chose essentielle
qu'il ne faut pas oublier: tout de suite après la première compilation,
il faut cocher (comme d'autres intervenants l'ont indiqué) l'option
Compatibilité Binaire avec le binaire tout juste créé.

Pourquoi? A cause d'une aberration mentale dont VB est malheureusement
parfois capable: à chaque compilation, le CLSID généré pour le composant
est différent... jusqu'à ce que l'on coche Compatibilité Binaire. Donc
si vous ne cochez pas cette option, les clients existants se réfèrent
toujours à un mauvais CLSID. Si vous les recompilez et recréez la
référence, le bon CLSID est pris en compte et le programme fonctionne à
nouveau.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Driss HANIB
Merci à Jacques93 et aux deux Patrick

Je vais maintenant le noter sérieusement.
Et effectivement c'est cela dont on m'avait parlé.

Nickel

Merci

Driss


"Driss HANIB" a écrit dans le message de
news:
Bonjour à tous,

il me semble avoir déjà posé la question mais j'avoue que j'en ai oublié


la
réponse ;o((
aussi je me permets de la reposer

Je suis en train de faire une DLL ActiveX qui me permet de 'piloter' WORD
(ici WORD97), (n'en déplaise au GUEUX)
Certains programmes utilisent cette DLL pour remplir des compte-rendus.
Mais je suis en train de rajouter au fur et à mesure de mes besoins


quelques
fonctionnalités.
Or quand je recompile cette DLL, il me semble que les programmes compilés
qui l'utilisent 'plantent' ou plus stoppent sans aucun message d'erreur.
Lors que j'enregistre manuellement cette DLL et que je recompile les
programmes, cela repart (car je ne change pas les entrées).
Comment faire pour qu'une nouvelle compilation de cette DLL ne m'oblige


pas
à la réenregistrer dans la BDR : une sorte de compatibilité ascendante..

Il me semblait qu'il fallait choisir, une certaine option de compilation..

Merci de me rafraîchir la mémoire..

Driss