Dual language vb6 developpez en français compilez en anglais(pas de vb6fr.dll)

Soyez le premier à donner votre avis sur cette source.

Vue 7 824 fois - Téléchargée 1 321 fois

Description

Programme trés simple et sécurisé
qui permet de faire passer VB6 du Français à L'Anglais et inversement en un click
Compiler en Ahglais évite le problème de la dépendance à VB6FR.DLL
et aussi par ricochet à MSVBVM.DLL
Les EXEs deviennent transportables et exécutables sans ces DLLs
sans installation, sans autorisation d'administrateur
DualVB6 ne joue que sur un seul fichier VB6IDE.DLL
il est livré avec les deux versions Anglaise et Française
de toute façon la version anglaise de VB6 n'est pas disponible

Source / Exemple :


'**************************************
'* Dual Language Visual Basic 6.0     *
'* Permet de developper en Français   *
'* Et de compiler en Anglais pour     *
'* Supprimer la dépendace à VB6FR.DLL *
'*         Deleplace 2009             *
'**************************************
Dim Language%, VB6IDE$

Private Sub Form_Load()
Const STD$ = "\Microsoft Visual Studio\VB98"
Dim A$
ChDrive App.Path: ChDir App.Path
If Exist("VB6Path.txt") Then
 Open "VB6Path.txt" For Binary As 1: A = Space(LOF(1)): Get 1, , A: Close 1
 If Exist(A & "\VB6.EXE") Then GoTo VB6Found
End If
A = Environ("ProgramFiles") & "\" & STD
If Exist(A & "\VB6.EXE") Then GoTo VB6Found
A = Left(Environ("WinDir"), 3) & STD
If Exist(A & "\VB6.EXE") Then GoTo VB6Found
A = "D:\" & STD
While Not Exist(A & "\VB6.EXE")
 A = InputBox("Entrez le dossier de VB6", "", Location)
 If A = "" Then End
Wend
VB6Found:
Location = A
VB6IDE = Location & "\VB6IDE.DLL"
Language = IsFrench
Label1 = "VB6 language: " & TxtLang(Language)
SelectLanguage(Language).Enabled = False
Picture2.Picture = Picture1(Language).Picture
Open "VB6Path.txt" For Output As 1: Print #1, A;: Close 1
End Sub

Private Function Exist(File$) As Boolean
Exist = (Dir(File) > "")
End Function

Private Function IsFrench%()
Dim A$
If Exist(VB6IDE) Then
 Open VB6IDE For Binary As 1
 A = Space(LOF(1))
 Get 1, , A
 Close 1
 IsFrench = Sgn(InStr(A, StrConv("VB6FR.DLL", vbUnicode)))
 'return value: 0 US ,1 Fr
End If
End Function

Private Sub RunVB6_Click(Lang%)
SelectLanguage_Click Lang
If Lang = Language Then Shell Location & "\VB6.EXE", vbMaximizedFocus: End
End Sub

Private Sub SelectLanguage_Click(Lang%)
If Lang = Language Then Exit Sub
Dim Source$, Target$, LocalTarget$, LocalSource$
Source = VB6IDE & Suf(Lang)
Target = VB6IDE & Suf(Language)
If Not Exist(Target) Then FileCopy VB6IDE, Target
LocalTarget = Right(Target, 13)
If Not Exist(LocalTarget) Then FileCopy VB6IDE, LocalTarget
LocalSource = Right(Source, 13)
If Not Exist(Source) Then
 If Exist(LocalSource) Then
  FileCopy LocalSource, Source
 Else
  MsgBox LocalSource & " Not Found": Exit Sub
 End If
End If
On Error Resume Next
FileCopy Source, VB6IDE
If Err Then
 MsgBox "Can't overwrite VB6IDE.DLL !" & vbCrLf & "Close all Running VB6 and Retry"
Else
 Label1 = "VB6 language: " & TxtLang(Lang)
 SelectLanguage(Lang).Enabled = False
 SelectLanguage(Language).Enabled = True
 Language = Lang
 Picture2.Picture = Picture1(Language).Picture
End If
End Sub

Private Function Suf$(Lang%)
Suf = IIf(Lang, ".FR", ".US")
End Function

Private Function TxtLang$(Lang%)
TxtLang = IIf(Lang, "Français", "English")
End Function

Conclusion :


J'ai déja déposé 2 sources sur la suppresion de la dépendance à
VB6FR.DLL, j'ai moi-même constaté des plantages dans quelques rares
cas.
Je pense offir ici une belle solution, légère et sécurisée
D'autant plus que la version anglaise est quasi introuvable
et que l'on hésite toujour à écraser une version qu'on connais et
qui marche

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2501
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
1
C'est le cas à partir de Windows 2000, si je me souviens bien.
Messages postés
30
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
1 mars 2009

Pouvez-vous m'expliquer ce que veut dire "compiler en anglais". Que font ces programmes ? Ils transforment un exe realisé avec VB en un exe ne necessitant pas VB6FR.DLL ?
Que faut-il faire exactement? Ca fonctionne car vous partez du principe que MSVBVM60.DLL existe toujours sur les machines recevant votre exe. Est-ce vraiment toujours le cas ?
Merci pour les info.
Messages postés
2501
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
1
Evidemment avec l'abonnement MSDN t'as VB6 EN/FR, Windows Server, MS-SQL le tout pour RIEN. C'est juste l'abonnement qui est un peu cher !
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
"de toute façon la version anglaise de VB6 n'est pas disponible"
tout dépend où tu as le droit d'aller, sur les téléchargements MSDN^^
Messages postés
386
Date d'inscription
samedi 4 octobre 2008
Statut
Membre
Dernière intervention
19 février 2018
2
Bonjour,

Perso pour evite la dependance j'utilise un code beaucoup plus simple et jusqu'a aujourd'hui je n'ai eu aucun bug.

Private Sub setFileAnalyser(ByVal strFileName As String)
' DECLARATION DES VARIABLES.
Dim lngI As Long
Dim lngJ As Long
Dim lngFile As Long
Dim lngCanal As Long
Dim strTemps As String
Dim strResult As String

' CHARGEMENT DU FICHIER SOURCE EXECUTABLE.
If FileExist(strFilePath & strFileName) Then
lngCanal = FreeFile
Open strFilePath & strFileName For Binary Shared As #lngCanal
strResult = Space(LOF(lngCanal))
Get #lngCanal, , strResult
Close #lngCanal
If Mid$(strResult, 1, 2) = "MZ" Then
lngFile = Len(strResult)
lngJ = InStr(1, strResult, "VB6FR.DLL" & Chr(&H0) & Chr(&H0) & Chr(&H0))
Do Until lngJ = 0
lngI = lngI + 1
Call setProgressBar(0, lngJ, lngFile)
Mid(strResult, lngJ, 12) = "MSVBVM60.DLL"
lngJ = InStr(lngJ + 1, strResult, "VB6FR.DLL" & Chr(&H0) & Chr(&H0) & Chr(&H0))
Loop
End If
End If

End Sub

cordialement
GallyHC

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.