Vb6 à vb2008 : l'appli ne se lance pas... why ?

Résolu
Signaler
Messages postés
69
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
3 septembre 2010
-
Messages postés
69
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
3 septembre 2010
-
Bonjour à tous,

J'ai réalisé la migration et le débogage d'un programme initialement fait en vb6 pour le transformer en vb2008 ( à titre informatif, dit-on vb.net sous vs2005 ET sous vs2008 ?)

ma procédure principale vérifie s'il ne manque pas de paramètre d'initialisation au fichier ini, puis prépare des fichiers de log, et les traite, et il doit normalement lancer l'application. Mais elle ne se lance pas, aucune erreur n'est detectée, l'appli se ferme (le programme y rentre bien puisque à la ligne de lancement de l'appli soit la ligne 25, il demande "voulez vous vider le repertoire "truc" ?").

Voici mon code :

1. Public Sub Main()
2. 'declaration des variables
3. ...
4. ' INITIALISATION : le programme verifie le fichier ini
5. gs_errorMsg = ""
6. is_initialisation_validated = False
7. 'Si un paramètre d'initialisation manque, on ouvre l'écran de paramétrage
8. If M1_Initialisation.Init_OPA_Archiver_is_OK() = False Then
9. MsgBox("Pour que l'application puisse fonctionner correctement,"
10. & Chr(10) & "tous les paramètres doivent être renseignés!",
11. MsgBoxStyle.Exclamation, "Lancement de l'application")
12. ' lancement de l'application de paramétrage
[13]. VB6.ShowForm(UF_Parametres, (1))
14. GoTo Reprise
15. End If
16.
17. Reprise:
18. 'Si un paramètre d'initialisation manque, on ferme
19. ...
18.
19. ' PREPARATION FICHIER DE LOG
20. ...
21. ' LOG TRAITEMENTS
22. ' INITIALISATION DES VARIABLES APPLICATIVES
23. ...
24. 'LANCEMENT de l'application
[25]. UF_Monitor.Show()
26. End Sub

Je pense que le problème vient d'une des lignes entourée de crochet [ligne].
En vb6, à la ligne [13], était écrit ce code en cette syntaxe :

UF_Parametres.Show (1)

Auriez-vous une idée ? Merci d'avance,

Cordialement,
Ginger

3 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
UF_Parametres.Show (1) 
va se traduire en .Net par UF_Parametres.ShowDialog

Ensuite tu dois avoir un autre problème.
Par défaut, et contrairement à VB6, en .Net le programme se termine lorsque le processus de démarrage se termine, et ce, quelque soit le nombres de processus ou d'écrans encore ouvert.

Ton processus de démarrage est, à priori, la sub Main.
Tu as 2 solutions, soit modifier les propriétés du projet, pour ne pas fermer sur fermeture de l'objet de démarrage, soit bloquer l'execution de la sub Main en ouvrant UF_Monitor en Modal (.ShowDialog en .Net). Dans ce cas, le programme se terminera à la fermeture de l'écran UF_Monitor.

"...à titre informatif, dit-on vb.net sous vs2005 ET sous vs2008 ?..."
Dans le nom officiel des suites, VS.Net2003 comportait effectivement le terme .Net, VS2005, VS2008, VS2010 à venir, ont perdu la dénomination .Net. Cela reste quand même du .Net. Quant à quoi dire, offciellement c'est VS2008, mais les deux sont courament utilisés et admis.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
69
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
3 septembre 2010

PS : Lors du débogage, après avoir demandé si on souhaite vider le reptertoire, on voit une fenetre s'ouvrir et se fermer immédiatement. J'ai pensé que ça pouvait être la fenêtre qui doit normalement s'ouvrir, alors pourquoi est-ce qu'elle ne resterait pas ouverte ? :s
Messages postés
69
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
3 septembre 2010

:D Merci beaucoup Casy !!
J'ai modifié comme tu m'as dit UF_Parametres.Show (1) en UF_Parametres.ShowDialog,
et j'ai modifié la ligne [25] UF_Monitor.Show() en UF_Monitor.ShowDialog().
Au lancement en débogage, il demande si on veut vider le répertoire, et ensuite ça ouvre la fenêtre. Elle se ferme bien lorsque l'on fait quitter :)

Merci encore et bonne journée !
Cordialement,
Ginger
-je vais finir par devenir moins débutante héhé-