SUPPRESSEUR DE LA DÉPENDACE À VB6FR.DLL REND LES EXES VB6 AUTONOMES
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
25 févr. 2009 à 03:12
cs_PROGRAMMIX
Messages postés1133Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention24 juillet 2011
-
17 juin 2010 à 17:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_PROGRAMMIX
Messages postés1133Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention24 juillet 20112 17 juin 2010 à 17:45
Merci pour l'info.
En fait, je ne développe pas sur une machine dont je ne suis pas Administrateur. Je développe à la maison et installe ensuite mes programmes au boulot. Et là, le nouveau PC est en compte limité.
Faudra certainement que je revois ça avec le responsable parce que ça me gonfle (même l'heure du PC ne peut être modifiée).
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 16 juin 2010 à 21:33
Pour les appels des DLL si tu utilise l'option P-Code pour la compilation, oui elles peuvent être dans le même répertoire que ton programme. Pour les OCX par contre c'est plus délicat. Si ils sont déjà enregistrés sur la machine pas de soucis par contre pour ceux qui ne le sont pas, un accès en écriture à la base de registre est nécessaire, autant éviter d'en utiliser. En même temps, développer sur une machine dont tu n'es pas administrateur dessus, c'est pas très logique (ni pratique).
cs_PROGRAMMIX
Messages postés1133Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention24 juillet 20112 12 juin 2010 à 18:18
Au boulot, j'ai un compte limité sur le PC ; donc impossible d'installer quoi que ce soit qui modifie la base de registre.
Dès lors, est-ce qu'en mettant les OCX et DLL dans le même répertoire que l'EXE sur une clé USB, il me sera possible d'utiliser le programme ?
deleplace
Messages postés40Date d'inscriptionmardi 4 octobre 2005StatutMembreDernière intervention 2 mars 2009 2 mars 2009 à 14:43
La dernière version proposée ne redirige plus la dépendance
à VB6FR.DLL vers MSDMO.DLL mais vers MSVBVM60.DLL
c'est plus logique, l'EXE est déja dépendant de MSVBVM60.DLL
et surtout cela supprime les problèmes constatés
différence avant et après patch:
les messages d'erreurs critiques(progamme planté)
sont en Anglais au lieu d'être en Français
ghuysmans99
Messages postés2496Date d'inscriptionjeudi 14 juillet 2005StatutContributeurDernière intervention 5 juin 20161 28 févr. 2009 à 01:15
@ deleplace : J'ai l'impression que les heureux possesseurs de ces licences veulent les garder !
deleplace
Messages postés40Date d'inscriptionmardi 4 octobre 2005StatutMembreDernière intervention 2 mars 2009 27 févr. 2009 à 20:44
Puisque ma source est devenue un forum
je vais m'y mettre aussi
Comme je l'ai mis dans mes conclusions j'ai constaté un problème à remplacer VB6FR par MSDMO
assez bien identifié ce n'est sans doute pas le seul
si j'écrit
Chaine$ = 1 'ou n'importe quel nombre
'puis
If Chaine Then
'C'est admis et interprété comme IF Val(Chaine)<>0 Then
aprés patchage ça plante
j'ai du modifier un assez gros logiciel
et remplacer Chaine par Val(Chaine)
Je pense qu'en suite le fonctionnement doit être stable
Certains m'en conseillé d(utiliser la version anglaise
je trouve que c'est effectivement mieux
Problème: officiellement elle est introuvable
VBbigineure
Messages postés169Date d'inscriptionvendredi 27 septembre 2002StatutMembreDernière intervention27 février 20091 27 févr. 2009 à 18:57
Vi, on a tjr entendu que c'était nécessaire, mais en la supprimant ça marche encore très bien.
D'ailleurs, toutes les applis ne l'appellent pas, si y'a pas d'ocx ni autre truc tordu... pas d'appel.
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 27 févr. 2009 à 17:53
PATATE>>ThInstall = petites applis uniquement...
Je ne suis pas tout à fait d'accord. On trouve sur le réseau torrent beaucoup de grosses appli (Office, Photoshop) qui ont été virtualisée avec ThInstall et qui fonctionne très bien.
Par contre concernant l'UAC je sais pas.
VBbigineure>>Qu'entends tu par : "je bene aussi les appels à msvbvm60.dll" ?
Il me semblait que cette dll est nécessaire à tout programme VB6 ?!?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 27 févr. 2009 à 16:34
voilà, c'est bien cette dll qui est requise.
(dépend de ce que font tes applis, j'imagine)
VBbigineure
Messages postés169Date d'inscriptionvendredi 27 septembre 2002StatutMembreDernière intervention27 février 20091 27 févr. 2009 à 16:30
En fait je bene aussi les appels à msvbvm60.dll. Et sur toutes configs je n'ai jamais eu de retour...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 27 févr. 2009 à 16:24
mais non !
ca voudrais dire qu'un exe compilé sur un Visual Studio british est autonome, puisque ne requérant pas vb6fr.dll
il faut la Runtime VB6, c'est un fait.
VBbigineure
Messages postés169Date d'inscriptionvendredi 27 septembre 2002StatutMembreDernière intervention27 février 20091 27 févr. 2009 à 16:21
Bien dans mon cas je supprime souvent l'appel a VB6FR.DLL et ça suffit, dans toutes les configs ça suffit pour que l'appli soit autonome, une a d'ailleurs été reconnue par framakey.
Je n'ai jamais entendu parler de plantage ni de manque d'une autre dll.
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 26 févr. 2009 à 23:58
ThInstall c'est bien pour des petits programmes que tu gardes pour toi (donc inutile puisque tu as les runtimes) Pourquoi ? Je doute que ce type d'EXE recompilé fonctionne correctement sous Vista (ou Windows 7 c'est pareil) avec UAC actif ...
à vérifier ...
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 26 févr. 2009 à 22:48
ThInstall fait cela très bien (recompiler un exe en y intégrant les dll, ocx,...).
Côté performance, le lancement de l'exe devient un peu plus long mais je n'ai pas senti de différence flagrante à l'utilisation.
J'ai eu beau cherché, je ne comprend toujours pas le mécanisme employé. Mais je doute que l'on puisse en faire de même en VB6.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 26 févr. 2009 à 07:01
bien d'accord avec toi...
"c'est le jeu ma pauvre Lucette"
Après y'a deux choses:
pouvoir avoir un exe, avec toutes les dll a coté
et pouvoir lancer ledit exe, sans INSTALLER (base de registres) les dll et sans que le Runtime VB n'ai a étre installé.
là, ce serait utile.
mais faire un exe autonome et embarquant les dll, pas utile, gros exe, et galère si on veux betement recompiler l'exe (steps en plus)
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 26 févr. 2009 à 03:07
impossible de greffer msvbvm60.dll dans l'exécutable. Pourquoi ? pour l'extraire il faut que l'exécutable en question puisse se lancer et pour ça il lui faut msvbvm60.dll ... Jeu sans fin donc ! A part passer par un lanceur écrit en C/C++ pour copier la DLL, impossible de faire autrement. Et si tu créé un lanceur C/C++ autant écrire tes programmes dans ce langage.
Conclusion : Rendre un exécutable VB6 autonome est impossible. Tenter de le faire est suicidaire, ça rajoute des risques de plantages ou autres. Si vous voulez des programmes vraiment autonomes, utilisez un langage sans runtimes ou framworks
ghuysmans99
Messages postés2496Date d'inscriptionjeudi 14 juillet 2005StatutContributeurDernière intervention 5 juin 20161 25 févr. 2009 à 09:46
Cette DLL n'est utilisée que pour la version française de VB6 ...
Donc ceux qui ont la version anglaise (moi par exemple) n'auront pas de problème !
N'y a-t-il pas moyen de mettre msvbvm60.dll directement dans l'EXE ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 25 févr. 2009 à 09:10
Possible aussi peut etre de se greffer au compilateur (avant, opu après) pour que ce soit systématique, et que la suppression se fasse sans qu'on ait a manipuler quoi que ce soit
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 25 févr. 2009 à 03:12
reste tout le reste de la runtime VB
on est juste tranquille quant à la langue du runtime installé.
17 juin 2010 à 17:45
En fait, je ne développe pas sur une machine dont je ne suis pas Administrateur. Je développe à la maison et installe ensuite mes programmes au boulot. Et là, le nouveau PC est en compte limité.
Faudra certainement que je revois ça avec le responsable parce que ça me gonfle (même l'heure du PC ne peut être modifiée).
16 juin 2010 à 21:33
12 juin 2010 à 18:18
Dès lors, est-ce qu'en mettant les OCX et DLL dans le même répertoire que l'EXE sur une clé USB, il me sera possible d'utiliser le programme ?
2 mars 2009 à 14:43
à VB6FR.DLL vers MSDMO.DLL mais vers MSVBVM60.DLL
c'est plus logique, l'EXE est déja dépendant de MSVBVM60.DLL
et surtout cela supprime les problèmes constatés
différence avant et après patch:
les messages d'erreurs critiques(progamme planté)
sont en Anglais au lieu d'être en Français
28 févr. 2009 à 01:15
27 févr. 2009 à 20:44
je vais m'y mettre aussi
Comme je l'ai mis dans mes conclusions j'ai constaté un problème à remplacer VB6FR par MSDMO
assez bien identifié ce n'est sans doute pas le seul
si j'écrit
Chaine$ = 1 'ou n'importe quel nombre
'puis
If Chaine Then
'C'est admis et interprété comme IF Val(Chaine)<>0 Then
aprés patchage ça plante
j'ai du modifier un assez gros logiciel
et remplacer Chaine par Val(Chaine)
Je pense qu'en suite le fonctionnement doit être stable
Certains m'en conseillé d(utiliser la version anglaise
je trouve que c'est effectivement mieux
Problème: officiellement elle est introuvable
27 févr. 2009 à 18:57
D'ailleurs, toutes les applis ne l'appellent pas, si y'a pas d'ocx ni autre truc tordu... pas d'appel.
27 févr. 2009 à 17:53
Je ne suis pas tout à fait d'accord. On trouve sur le réseau torrent beaucoup de grosses appli (Office, Photoshop) qui ont été virtualisée avec ThInstall et qui fonctionne très bien.
Par contre concernant l'UAC je sais pas.
VBbigineure>>Qu'entends tu par : "je bene aussi les appels à msvbvm60.dll" ?
Il me semblait que cette dll est nécessaire à tout programme VB6 ?!?
27 févr. 2009 à 16:34
(dépend de ce que font tes applis, j'imagine)
27 févr. 2009 à 16:30
27 févr. 2009 à 16:24
ca voudrais dire qu'un exe compilé sur un Visual Studio british est autonome, puisque ne requérant pas vb6fr.dll
il faut la Runtime VB6, c'est un fait.
27 févr. 2009 à 16:21
Je n'ai jamais entendu parler de plantage ni de manque d'une autre dll.
26 févr. 2009 à 23:58
à vérifier ...
26 févr. 2009 à 22:48
Côté performance, le lancement de l'exe devient un peu plus long mais je n'ai pas senti de différence flagrante à l'utilisation.
J'ai eu beau cherché, je ne comprend toujours pas le mécanisme employé. Mais je doute que l'on puisse en faire de même en VB6.
26 févr. 2009 à 07:01
"c'est le jeu ma pauvre Lucette"
Après y'a deux choses:
pouvoir avoir un exe, avec toutes les dll a coté
et pouvoir lancer ledit exe, sans INSTALLER (base de registres) les dll et sans que le Runtime VB n'ai a étre installé.
là, ce serait utile.
mais faire un exe autonome et embarquant les dll, pas utile, gros exe, et galère si on veux betement recompiler l'exe (steps en plus)
26 févr. 2009 à 03:07
Conclusion : Rendre un exécutable VB6 autonome est impossible. Tenter de le faire est suicidaire, ça rajoute des risques de plantages ou autres. Si vous voulez des programmes vraiment autonomes, utilisez un langage sans runtimes ou framworks
25 févr. 2009 à 09:46
Donc ceux qui ont la version anglaise (moi par exemple) n'auront pas de problème !
N'y a-t-il pas moyen de mettre msvbvm60.dll directement dans l'EXE ?
25 févr. 2009 à 09:10
25 févr. 2009 à 03:12
on est juste tranquille quant à la langue du runtime installé.
mais on n'est pas "autonome" a fond