cs_ginger4957
Messages postés69Date d'inscriptionjeudi 8 janvier 2009StatutMembreDernière intervention 3 septembre 2010
-
17 févr. 2009 à 10:41
cs_ginger4957
Messages postés69Date d'inscriptionjeudi 8 janvier 2009StatutMembreDernière intervention 3 septembre 2010
-
17 févr. 2009 à 11:34
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 :
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 17 févr. 2009 à 11:21
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.
cs_ginger4957
Messages postés69Date d'inscriptionjeudi 8 janvier 2009StatutMembreDernière intervention 3 septembre 2010 17 févr. 2009 à 10:45
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
cs_ginger4957
Messages postés69Date d'inscriptionjeudi 8 janvier 2009StatutMembreDernière intervention 3 septembre 2010 17 févr. 2009 à 11:34
: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é-