COMMENT SE DÉBARRASSER DE VB6FR.DLL LIMITANT LA COMPATIBILITÉ DES APPLICATIONS V

cs_legion91 Messages postés 216 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 15 décembre 2010 - 5 févr. 2004 à 14:19
driscoll Messages postés 1 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 4 avril 2013 - 4 avril 2013 à 18:57
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/20160-comment-se-debarrasser-de-vb6fr-dll-limitant-la-compatibilite-des-applications-vb

driscoll Messages postés 1 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 4 avril 2013
4 avril 2013 à 18:57
Amusant !

Pourquoi faire compliqué alors que c'est très simple !

Il suffit de RE-Compiler avec VB6 English... c'est tout, mais

CA NE POSE PLUS AUCUN PROBLEME DE DEPENDANCE A vb6FR.dll

Best regards
tuyo2poil Messages postés 6 Date d'inscription dimanche 16 novembre 2003 Statut Membre Dernière intervention 29 septembre 2006
26 nov. 2007 à 19:57
et bin, quand je lis toute cette tartine de commentaires, je trouve que vous êtes bien difficiles !

ce prog marche impec ! le reste on s'en fout !

bravo Ashtheone, et allez donc au champignons, ça vous changera les idées !
2parmelin Messages postés 11 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 22 août 2007
19 juil. 2007 à 09:32
En fait le programme présenté ici n'est pas à intégrer a un autre projet mais agit directement sur le fichier EXE de votre propre projet.

A noter une autre utilisation amusante, remplacer les appels a la MsVbVm60.dll pour une autre dll. Quel intérêt ? Simplement le fait de pouvoir copier la MsVbVm60.dll en incognito.dll, par exemple, et ainsi isoler votre programme de tout problème lié a la dll du VB6.

J'ai utilisé cette technique pour éviter qu'un de mes programmes soit bloqué par quelqu'un qui virait la DLL pour éliminer le démarrage de tous programmes VB de sa machine.
flamcy Messages postés 58 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 14 avril 2009
20 juin 2007 à 23:09
re,
en + je ne sais plus quel code faut mettre ni où le mettre.
il y en a de trop dans tous les coins avec des modif...
Puis faut aussi prendre en compte que je suis loin d'etre expert en vb. Je fais des tit programmes tout doucement et j'essaie de progresser mais ce pb, m'ennui vraiment et je ne suis pas le seul apparement.
rien de tel que quelqu'un qui apprecie votre travail, non?
c'est pourquoi il serait bien d'avoir une solution qui serve de référence.
cs_kazimir Messages postés 26 Date d'inscription mercredi 23 octobre 2002 Statut Membre Dernière intervention 4 novembre 2008
20 juin 2007 à 22:40
non, juste tu ouvre le projet .vbp et tu le compile (fichier -> créer l'executable).
c'est tout, apres tu utilises.
flamcy Messages postés 58 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 14 avril 2009
20 juin 2007 à 22:09
ok merci,
mais son code, je le met où?
dans le module?
cs_kazimir Messages postés 26 Date d'inscription mercredi 23 octobre 2002 Statut Membre Dernière intervention 4 novembre 2008
20 juin 2007 à 19:43
Yop

pour executer un prog vb sans vb6FR.dll, il faut:
- compiler d'abord l'exe avec les sources fournies par Ashtheone.
- sur un pc ayant vb6FR.dll, faire une copie de ce programme (le but etant de virer sa dépendance a vb6Fr.dll, et oui lui aussi l'integre).
- une fois que le prog est "dépoluer", tu pourras dépoluer tous les prog vb sur le pc du bureau (moi, j'ai fais comme ca et ca marche nickel.)

@++
flamcy Messages postés 58 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 14 avril 2009
20 juin 2007 à 18:56
slt à tous,
je viens de tout lire et je suis perdu au final.
le + simple pour executer un exe sur un ordi qui n'a pas vb6FR.dll et pas les droit d'admin (comme moi au boulo) c'est quoi ?
cs_isokar Messages postés 11 Date d'inscription lundi 20 février 2006 Statut Membre Dernière intervention 24 mars 2010
29 déc. 2006 à 16:05
salut a tous
bon
je voulais savoir si c'est par ce que je suis nul ou quoi mais je ne peu pas executer le prog car il me met des erreurs, y a t'il une version plus a jour?
vicosta Messages postés 178 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 30 novembre 2011
5 juin 2006 à 21:00
voila voila, merci et merci encore ami Ashtheone

avec ça, on peut distribuer notre programme de façon très légére

l'executable suffit

normalment msvbvm60.dll est déjà sur tous les ordis, mais pas vb6fr.dll !!!!

ceux qui ne voient pas d'utilité, peuvent éssayer de renommer le fichier vb6fr.dll en vb66fr.dll et ils veront que un fichier d'installation occupera, au moins, 1.3 mo de plus !!!!!!

merci encore pour l'idéa
felicitations Ashtheone
cs_kazimir Messages postés 26 Date d'inscription mercredi 23 octobre 2002 Statut Membre Dernière intervention 4 novembre 2008
3 févr. 2006 à 20:02
si je sais lire, c'est normal, sous xp, c'est pas le bon chemin du dossier system32.

sous NT/2000 : C :\WINNT\system32\vb6fr.dll
sous XP: C :\Windows\system32\vb6fr.dll

verifie de donner le chemin relatif si tu appelles la dll depuis le code.
ou bien de modifier ton script d'empaquetage afin qu'il place la dll dans le bon dossier.
mosquitout Messages postés 12 Date d'inscription dimanche 26 octobre 2003 Statut Membre Dernière intervention 2 janvier 2013
3 févr. 2006 à 19:27
Bonjour,
J'ai fait une appli vb et quand je l'install sur un poste xp j'ai l'erreur vb6fr.dll manquante ! est-ce que je peux résoudre le probleme en utilisant l'utilitaire ici présenté ?
C.a.d en lancant peut-être en premier cet utilitaire puis mon appli ?
(quand je met la dll dans mon package d'install, il me renvoi : C :\WINNT\system32\vb6fr.dll
Impossible d'enregistrer la dll ou l'ocx ; la fonction exportée DllRegisterServeur n'a pas été trouvée.)
mosquitout Messages postés 12 Date d'inscription dimanche 26 octobre 2003 Statut Membre Dernière intervention 2 janvier 2013
3 févr. 2006 à 18:50
Bonjour,
J'ai fait une appli vb et quand je l'install sur un poste xp j'ai l'erreur vb6fr.dll manquante ! est-ce que je peux résoudre le probleme en utilisant l'utilitaire ici présenté ?
C.a.d en lancant peut-être en premier cet utilitaire puis mon appli ?
(quand je met la dll dans mon package d'install, il me renvoi : C :\WINNT\system32\vb6fr.dll
Impossible d'enregistrer la dll ou l'ocx ; la fonction exportée DllRegisterServeur n'a pas été trouvée.)
SgtKabukinan Messages postés 106 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 23 janvier 2010
21 nov. 2005 à 12:19
hum... jusqu'à preuve du contraire il y a une présemption d'abscence sur les versions WIN inférieure à Win 2000
cs_kazimir Messages postés 26 Date d'inscription mercredi 23 octobre 2002 Statut Membre Dernière intervention 4 novembre 2008
20 nov. 2005 à 19:55
Question:

la dll MSVBVM60.DLL est elle reelement presente par defaut dans toutes les version de windows (xp principalement) ?

merci de me confirmer

@++
cs_kazimir Messages postés 26 Date d'inscription mercredi 23 octobre 2002 Statut Membre Dernière intervention 4 novembre 2008
20 nov. 2005 à 19:13
Yop, all

ce code peut etre tres tres utile dans mon cas, car je ne peux pas utiliser mes programmes au travail a cause de cette foutue vb6fr.dll

en effet, mon poste n'etant qu'une station de travail, il m'est impossible d'ecrire dans le dossier windows, donc impossible d'y placer quelques dll que ce soit.
toutes les dll appellées depuis les prog peuvent etre deportées sauf (principalement) vb6fr.dll

si ce code peut m'aider a utiliser mes applis, c'est genial et pour faire taire Sirocooo, sa solution N'EST PAS APPLICABLE POUR TOUS (cf moi !)

@++
SgtKabukinan Messages postés 106 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 23 janvier 2010
16 nov. 2005 à 16:04
amen !
2parmelin Messages postés 11 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 22 août 2007
29 juil. 2005 à 20:34
Beaucoup de messages sur ce sujet et parfois des confusions.
Voici ce que je sais du sujet, si jamais ça peut aider.
- VB6FR.DLL contient en effet les messages d'erreurs en FR comme cela a été justement dit on peut donc s'en passer
- Copier vb6fr dans un dossier systeme marche, regsvr32 n'est pas nécessaire MAIS, cette opération demande les droits admin sur la machine donc ceux qui pensent regler le probleme ainsi sont coincés (sauf si le programme ne sort pas de chez vous)
- La solution la plus simple consiste en effet a compiler l'EXE avec la version GB
- XP et Windows 2000 contiennent le runtime de VB6 MsVbVm60.dll et peuvent lancer des programmes VB directement (sauf si appel a VB6FR.DLL !) et appel a tout autre OCX ou DLL VB (les DLL compilées du C ne demande pas de regsvr et peuvent etre appelées directement du code VB)
- Faire un EXE sans autre OCX ou DLL vb le rend directement utilisable par toutes les versions de 2000 ou XP et permet de lancer le programme sans droits admin
- Pour les 95 et 98 chaque utilisateur est admin de son poste et peut donc installer tout ce qu'il veut, probleme est moins génant.
- MsVbVm60.dll n'est pas bypassable car votre EXE y fera forcément appel (déjà ecrit plus haut)
- Le programme Fusion que je citais plus haut demande les droits admins pour fonctionner (il enregistre les DLL au lancement de l'EXE) et peut etre bloqué par des antivirus (McAfee par exemple)
- Il y a des fois ou l'on ne peut pas faire de SETUP (progamme qui se lance au lancement d'un CD par exemple).

A+
Vedlen Messages postés 360 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 7 septembre 2009
25 juin 2005 à 12:33
Ok donc si je résume l'utilisation de msvbvm60.dll au lieu de vb6fr.dll permet de se passer d'une dll pour ceux qui ont Win XP.
Ashtheone Messages postés 20 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 19 mai 2004
25 mars 2005 à 09:37
Bonjour michel_j,
Le zip contient tout ce dont tu as besoin.
Il te faut juste un compilateur VB6 pour générer l'application.
Après, c'est très simple : tu lances l'application, une fenêtre s'ouvre te permettant de sélectionner l'exécutable sur lequel tu veux supprimer la référence à la DLL. Une fois le fichier choisi, click sur Ok. Un message t'averti pour te dire que la référence à la DLL à bien été supprimée ou non.
C'est tout! ;o)
cs_michel_j Messages postés 1 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 24 mars 2005
24 mars 2005 à 18:00
Bonjour messieur, je découvre aujourd'hui votre site web et laissez moi vous dire qu'on en trouve des solutions ici. Je ne suis pas un développeur comme vous mais bien un fanatique d'ordinateur qui se débrouille assez bien pour les réparer. J'ai un probleme avec le fameux VB6FR.DLL et votre astuces me semble être ce que j'ai besoin. Mais il y a un Hic! je ne sais pas quoi faire avec . Pourriez vous me guider dans la manière de l'appliquer a mon windows XP pro.

merci

Michel_J
dionysos6868 Messages postés 310 Date d'inscription jeudi 4 septembre 2003 Statut Membre Dernière intervention 9 juin 2005 1
11 janv. 2005 à 19:49
bonjour a tous juste pour rectifier ce que LuTo a écris

@if not exist %SystemRoot%\system32\VB6FR2.dll copy "VB6FR2.dll" "%SystemRoot%\system32\VB6FR2.dll"

voila
damdam04 Messages postés 27 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 20 novembre 2006
11 août 2004 à 18:28
trop de la balle ton prog ....
merci beaucoup je galèrais depuis 4 jours pour arriver à contourner ce problème...
merci
et bonne continuation
AeTuOq28 Messages postés 22 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 26 octobre 2004
9 juil. 2004 à 16:32
Et comment on fait pour virer les référence au fichier vraiment génant (msvbvm60.dll).
2parmelin Messages postés 11 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 22 août 2007
21 févr. 2004 à 22:46
tss tss tsss
moi je suis partisan des solutions simples. J'utilise bitart fusion ainsi je ne ditribue qu'un EXE avec toute les DLL dedans (zippé bien sur). Ideal pour les diffusions. Il est un peu vieux comme prog mais efficace. maintenant il y en a d'autre comme powerwrap ou thinstall.

Mais, j'avoue, que tout effort pour se creuser la tete en programmation ne peut etre que bon.

Bravo pour l'effort
2parmelin Messages postés 11 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 22 août 2007
21 févr. 2004 à 22:33
tss tss tsss
moi je suis partisan des solutions simples. J'utilise bitart fusion ainsi je ne ditribue qu'un EXE avec toute les DLL dedans (zippé bien sur). Ideal pour les diffusions. Il est un peu vieux comme prog mais efficace. maintenant il y en a d'autre comme powerwrap ou thinstall.

Mais, j'avoue, que tout effort pour se creuser la tete en programmation ne peut etre que bon.

Bravo pour l'effort
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
19 févr. 2004 à 14:06
lol vous êtes encore un peu bouché je crois !

Le fichiers vb6fr.dll sert de bibliotheque pour la traductions des messages d'erreur en français !

Elle peut être remplacer comme le montre AshtheOne par msvbvm60.dll ce qui vas remplacer tout les textes en francais
venant de vb6fr en anglais avec msvbvm

Cela dit msvbvm60.dll ne peut etre remplacer car c'est la machine virtuel de vb c'est elle qui gere tout les objets vb form control etc...
ainsi que la gestion de la memoire des chaine de caractere etc..
donc a moins de reecrire entierement un compilateur vb ou de reecrire cette machine virtuelle il n'est pas possible de s'en passer !!!

De plus msvbvm60.dll est installé dans la version standard de winXP
donc s'il on supprime la reference a vb6fr.dlll le prog marche sans probleme sur une installation classique ! sauf si vous ajouté d'autre reference dans ce cas vous n'avez qu'a faire un package d'install.

Alors arretez de réver !

;-P

@+
hackademius Messages postés 172 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 24 février 2008
19 févr. 2004 à 13:58
et n'y aurai t'il pas moyen de virer les referenses completement car la dllne dois pas servir a grand chose dans cette hstoire , peu etre ppour les fonctions msgbox ou d'affichage , je ne c pas mais ca ne dois pas etre grandiose .

en C , un programme ne fais appel a aucune dll , je crois , alors pk vb en aurai besoins ? ou alors il faudrai implanter les fonctions de la dll , dans l'executable lui meme .... mais c pas gagné ...

@+
cs_LuTo Messages postés 102 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 6 juin 2010
19 févr. 2004 à 08:40
Selon une suggestion de BasicInstinct, une solution simple pour resoudre le probleme de compatibilite est de faire un batch qui copie VB6FR.DLL dans le bon repertoire avant d'executer MonProg.exe.
Exemple :

@echo Installation en cours...
@if not exist %SystemRoot%/system32/vb6fr.dll copy VB6FR.DLL %SystemRoot%/system32/VB6FR.DLL
@call MonProg.exe

Certes, ca fait clignoter une fenetre DOS a la premiere installation, mais c'est pas mal, non ?
Ashtheone Messages postés 20 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 19 mai 2004
16 févr. 2004 à 13:31
Merci pour vos commentaires! :o)
AeTuOq28 Messages postés 22 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 26 octobre 2004
14 févr. 2004 à 10:48
Ce qui serai bien c'est de viré les références à MSVBVM60.DLL
cs_bigane Messages postés 46 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 12 février 2004
12 févr. 2004 à 21:53
Tiens, cind lignes qui devrait t'aider dans la recherche du Graal :

Open cdg.FileName For Binary As #1
buffer = String(LOF(1), 0)
Get #1, , buffer
Put #1, 1, Replace(buffer,"VB6FR.DLL" & vbnullchar & vbnullchar & vbnullchar,"MSVBVM60.DLL")
Close #1

Je ne l'ai pas testé, je n'ai pas VB6 sur ce poste, mais cela devrait fonctionner. A condition que la fonction replace (VBA) soit présente dans ton VB.
A+
cs_LuTo Messages postés 102 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 6 juin 2010
12 févr. 2004 à 12:30
Microfunn > Par pitie, si tu trouves ce prog, envoie le moi/nous !!!
cs_microfunn Messages postés 1 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 12 février 2004
12 févr. 2004 à 11:31
Yo !

J'ai tout lu !!!!...
Ca me rapelle mes debut de dev sur Amiga, faire des chose compliqué pour le plaisir de faire des chose compliqué ^^
J'ai rien contre mais bon, pour ta solution voila : Il existe un programme qui permet la fusion des dependances comme les ocxs et dlls, donc plutot que de rendre un log vb incompatible je te propose cette solution, seulement je me souviens plus du nom du Programme faut faire une recherche, ou dev dans cette direction.
Voila une idée de Proget commun !.

[Micro]
cs_LuTo Messages postés 102 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 6 juin 2010
12 févr. 2004 à 02:17
shadowmoy > As-tu essaye avec la version US ? Es-tu sur que la version US de VB6 n'utilise pas une autre DLL du genre VB6EN.DLL ou un truc dans le meme genre ?
Mon but est de faire un installeur, qui doit donc pouvoir marcher a partir du CD sans le moindre fichier VB sur le disque cible (comme le SETUP.EXE de l'assistant de deploiement, par ex).
PHILIPPECHERON Messages postés 1 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 11 février 2004
11 févr. 2004 à 14:07
Pour en revenir aux deux commentaires parasites, ce sont bien CR et LF.
Ces deux caracteres sont toujours rajoutés a la fin d'une ligne quand tu fais un 'print'.
Si tu n'en veux pas, tu fais PRINT #Num, Chaine;
Le ';' a la fin evite le CRLF.
C'est un vieil heritage du basic d'il y a 20 ans, car a l'origine, la fonction print permettait d'ecrire sur l'ecran et le CRLF faisait passer a la ligne suivante.
CQFD
shadowmoy Messages postés 340 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 25 août 2007
8 févr. 2004 à 19:20
le plus simple est encore d'avoir la version us de vb6 ^^ et la plus de vb6fr.dll héhé
Ashtheone Messages postés 20 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 19 mai 2004
7 févr. 2004 à 11:53
EBArtSoft > Très élégante ta solution!
Je l'ai intégré en source complémentaire dans mon code... Merci à toi.

Cyberdevil > Merci de m'avoir éclairé... :o)

khaleid > qu'essais tu de nous dire? Je n'ai pas très bien compris...
khaleid Messages postés 39 Date d'inscription mercredi 4 juillet 2001 Statut Membre Dernière intervention 8 avril 2014 1
6 févr. 2004 à 23:45
l'interet du code est la méthode de faire des modification dans un exe sans l'altéré (crack)
essayer ce truc :
dans les exe compilé avec vb5 remplacer la chaine MSVBVM50.DLL
par MSVBVM60.DLL !!!
darkteam Messages postés 46 Date d'inscription mardi 9 décembre 2003 Statut Membre Dernière intervention 18 juin 2010
6 févr. 2004 à 19:15
c'est vrai micro$oft fait vraiment des logiciels bourré de spyware et de faille de sécurité majeure alors ca ne m'etonne pas qu'il fasse aussi des dll inutiles...
Cyberdevil Messages postés 483 Date d'inscription mardi 10 juillet 2001 Statut Membre Dernière intervention 12 juillet 2006
6 févr. 2004 à 19:00
Pour reprendre la discussion a propos du soit disant bug :
(Je cite)

' Réécriture de l'éxécutable
intFile = FreeFile
Open cdg.FileName For Output As #intFile
Print #intFile, "" & chaine
Close #intFile

Au moment de la fermeture du fichier, cette fonction rajoute
2 octets indésirables (0D 0A) à la fin de celui ci.

(fin de la citation ;)
Les 2 octets présent sont normal car un print écrit une ligne dans un fichier avec un CrLf a la fin (d'ou les 2octet) pour écrire un exécutable il faut louvrir en mod binaire et écrire avec Put
Genre:

' Réécriture de l'éxécutable
intFile = FreeFile
Open cdg.FileName For Binary Access Write As #intFile
Put #intFile, , chaine
Close #intFile

Voila ;)

A+
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
6 févr. 2004 à 18:30
Pour info vb6fr.dll n'exporte aucune fonction c'est juste
un support de langue pour l'affichage des erreurs !

Sirocooo> installer une dll c'est bien ... s'en passer c'est mieu :-P

la boucle tu peut l'executer aussi comme ceci :
Open c.FileName For Binary As #1
s = String(LOF(1), 0)
Get #1, , s
Do
i = i + 1
i = InStr(i, s, "VB6FR.DLL")
If i Then Mid(s, i, 12) = "MSVBVM60.DLL"
Loop While i
Put #1, 1, s
Close #1

@+
Utilisateur anonyme
6 févr. 2004 à 17:04
Sirocooo> tu sais microsoft fais des choses bizzares de temps à autres,voir meme ridicules et truffées de bugs, après il faut des services packs de 100Megs pour corriger une infime partie de code baclée... loooool !!! Il sont marrants chez Microsoft !!
Ashtheone Messages postés 20 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 19 mai 2004
6 févr. 2004 à 14:37
Merci pour tes bons conseils :o)
Sirocooo Messages postés 412 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 7 avril 2008 1
6 févr. 2004 à 14:25
c'est bien continu... bon travail...
Je voulais simplement mettre en évidence que si vb6fr.dll n'est pas
utile, Miscrosoft ne l'aurrait pas crée.

bon courage
Ashtheone Messages postés 20 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 19 mai 2004
6 févr. 2004 à 14:18
Sirocooo > C'est vrai que c'est le plus simple! Je suis d'accord avec toi.
En faite, si j'ai pondu cette appli, c'est pour rendre relativement portable des petits progs qui triplent de volume si on les envoies avec DLL. :o)

Et puis, c'est toujours sympa de se prendre la tête sur des bouts de codes. Ca peut toujours être réutilisé ailleurs quand c'est bien fichu...
Sirocooo Messages postés 412 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 7 avril 2008 1
6 févr. 2004 à 13:55
et les gas ne vous agacez pas, installé vb6fr.dll et ca marche !!!!
ca coute 10 secondes de temps pour l'installé
Ashtheone Messages postés 20 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 19 mai 2004
6 févr. 2004 à 13:43
Print #intFile, "" & Left (chaine, len(chaine) - 2)

Pardon...
Ashtheone Messages postés 20 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 19 mai 2004
6 févr. 2004 à 13:41
legion91 > Ca ne vient pas de la variable chaine.
J'ai fait un essaie avec :

Print #intFile, "" & Right (chaine, len(chaine) - 2)

chaine est bien perd 2 octets, mais les 2 octets parasytes s'y
concatène à la suite...
hackademius Messages postés 172 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 24 février 2008
6 févr. 2004 à 13:32
moi , je n'ai pas les dlls vb6fr ni msvbvm60 sur mon dur , j'ai win 98 , et il ne sont pas installés au depart !
donc ca ne marche pas !
c bien d'avoir essayé quand meme
cs_legion91 Messages postés 216 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 15 décembre 2010
6 févr. 2004 à 13:31
C'est ken tu utilise write #1 ke sa ajoute les guillemets, sinon pour le bug heu jai pas regarder mais sa me semble bizar, sa ne peut k venir de ta valeur Chaine.
Sirocooo Messages postés 412 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 7 avril 2008 1
6 févr. 2004 à 12:31
moi j'ai trouver un truc plus facile.
Si VB6fr.dll n'est pas présente et bien je l'installe...

Ca marche à tous les coups et ya pas de bugs.

Quel gaspillage de temps !!!!
Ashtheone Messages postés 20 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 19 mai 2004
6 févr. 2004 à 11:22
legion91 > Je t'avoue que j'ai repiqué à l'arrache le code du Common Control sans m'interresser au cancelerror et aux flag.
Je vais jetter un coup d'oeil sur ces propriétés.

... et tu as raison, quand quelquechose me gonfle, ma solution de fuite et un bon gros "On Error Goto" bien gras... C'est ma tendance programmeur du dimanche... :o)

Mais bon, je vais faire un effort...

A par ça, Je viens de découvrir un petit bug dans la source lors
de l'exécution de la fonction suivante :

' Réécriture de l'éxécutable
intFile = FreeFile
Open cdg.FileName For Output As #intFile
Print #intFile, "" & chaine
Close #intFile

Au moment de la fermeture du fichier, cette fonction rajoute
2 octets indésirables (0D 0A) à la fin de celui ci.

Ceci n'affecte en rien le fonctionnement de l'éxécutable, mais je
m'interroge sur la raison de l'apparition de ces deux octets...

Peut être pourrais tu m'éclairer legion91?
Je suppose que c'est "Print" et sa mauvaise habitude d'insérer des guillemets...

Tilois > Connaitrais tu une DLL plus générique que MSVBVM60.DLL?
MSVBVM50.DLL peut être?

khaleid > Je pense que Tilois peut nous éclairer tout deux...
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
5 févr. 2004 à 19:47
Asththone > MSVBVM60.DLL n'est pas a proprement parler une DLL classique de windows puisque les versions de windows avant 2000 n'en sont pas pourvue en standard.
khaleid Messages postés 39 Date d'inscription mercredi 4 juillet 2001 Statut Membre Dernière intervention 8 avril 2014 1
5 févr. 2004 à 19:45
tres bonne idée ...mais pourqoui un exe fait une reference a un dll si il en a pas besoin ?
peut on faire de meme avec d'autre dll vb ?
cs_legion91 Messages postés 216 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 15 décembre 2010
5 févr. 2004 à 17:05
Si j'ai mis une detection du fichier c pas sans raison en effet (je site ton code):

With cdg
.CancelError = True
.Flags = &H80000 Or &H4 Or &H2
On Error GoTo ErrHandler
End With

-.cancelerror = true 'je ne sais moi meme c k sa veut dire un comentaire stp
- flag idem
- et On Error GoTo ErrHandler oula sa c du dans le cas ou sa plante ?, si ta pas selectionnez un bon fichier hehe fo mettre ma fonction dir ;-)
Ashtheone Messages postés 20 Date d'inscription samedi 2 août 2003 Statut Membre Dernière intervention 19 mai 2004
5 févr. 2004 à 15:48
A noter msvbvm60.dll est une dll classique de windows, donc sa taille n'a pas d'importance...

Pour le reste, je suis d'accord que mon code peu être amélioré.
Il est sans prétention.
Je l'ai pondu hier soir parceque j'avais besoin d'un petit utilitaire de ce style.

Je n'ai pas trop pensé l'algo, mais c'est propre c'est sans bavure...

Merci en tout cas pour vos critiques constructives :o)
abhoryo Messages postés 28 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 29 août 2008
5 févr. 2004 à 14:27
je pense qu'un code comme ca peu etre pratique mais quand on pense que vb6fr.dll ne fait que 116Ko (20Ko compresé) comparé à msvbvm60.dll qui est 10 fois plus gros. Enfin voila sinon je trouve ton code bien monté.
cs_legion91 Messages postés 216 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 15 décembre 2010
5 févr. 2004 à 14:19
oua le truc de deman, alors toi t'aime ce ki est compliker pour remplacer une donner par une autre ben o lieu de faire 10 mille ligne pour ouvrir un fichier deplus faudrait deja savoir si le fichier est bien existant et oui ya un bouton annuler dans le common control donc voici mon code:

if dir(cdg.filename,vbNormal Or vbReadOnly Or vbHidden Or vbSystem Or vbArchive) <> vbnullstring then
dim Nr as string
dim Texte1 as string
Nr = FreeFile 'remplace #1 ou la c un chiffre aleatoire
Open sFile For Binary As #Nr 'on l'ouvre
Texte1 = Input(LOF(1), #Nr) 'tout le contenu du fichier dans la string sbin
Close #Nr 'on ferme le fichier

'on remplace
Texte1 = replace(Texte1,"vb6fr.dll","msvbvm60.dll")
nr = freefile
Open cdg.filename For Output As #nr
Print #nr, "" & Texte1
Close #nr

else
msgbox "Mais où elle l'exe ;-)"
end if
Rejoignez-nous