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

Résolu
cs_ginger4957 Messages postés 69 Date d'inscription jeudi 8 janvier 2009 Statut Membre Dernière intervention 3 septembre 2010 - 17 févr. 2009 à 10:41
cs_ginger4957 Messages postés 69 Date d'inscription jeudi 8 janvier 2009 Statut Membre Derniè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 :

UF_Parametres.Show (1)

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

Cordialement,
Ginger

3 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
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.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
3
cs_ginger4957 Messages postés 69 Date d'inscription jeudi 8 janvier 2009 Statut Membre Derniè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
0
cs_ginger4957 Messages postés 69 Date d'inscription jeudi 8 janvier 2009 Statut Membre Derniè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é-
0
Rejoignez-nous