IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Problème Exécution en Release mais pas en Debug


Sujet :

VB 6 et antérieur

  1. #41
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    En fait RefreshDealList rafraichit et réinitialise la liste des deal qui peuvent être chargés avec le bouton LoadBtn (bouton1).
    Je ne pense pas que cette procédure aie de l'incidence vu qu'elle est appelée après RefreshInterface...???

  2. #42
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    J'ai une autre solution :
    Suis l'exemple de cette photo (voir pièce jointe)
    Images attachées Images attachées  

  3. #43
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Peux tu montrer le code de l'initialisation de tes controles ? On ne sait jamais.

  4. #44
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    Je viens de trouver ce message sur un autre forum :

    http://www.codeguru.com/forum/showthread.php?t=31602

    Mais il n'y a pas grand chose comme infos et le mec est injoignable... :-(


    Peux tu montrer le code de l'initialisation de tes controles ? On ne sait jamais.
    L'initialisation de mes contrôles ?? Tu veux voir quoi exactement ??

  5. #45
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Sans raison précise pour le moment, mais un petit test qui coute pas cher :
    Avec bouton1 (LoadBtn), j'imgine que tu sélectionne toujours un fichier et que tu valides. Peux tu faire l'essai d'annuler la sélection de fichier (appuis sur annuler dans la fenetre de selection de fichier). Je voudrais juste voir si le fait de ne pas passer dans le code qui est inclus dans le test suivant provoquera ensuite une erreur ou pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       If (True) And (CommonDlg.filename <> "") Then
    ...

  6. #46
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    J'ai testé.

    En faisant "Cancel" il choisit donc de partir en erreur et passe là dedans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ErrorHandler:
        MsgBox "Impossible de charger le lot !"
        tm.RollbackBlock
        RefreshInterface
        RefreshDealList
        RefreshLogList
    End Sub
    Donc il m'affiche une MsgBox et ensuite il passe nickel dans RefreshInterface et ses copains.....

    Mais toujours pas d'erreur !!!!!!!!!!

  7. #47
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Manages tu excel à partir de ton programme ?

    J'ai trouvé cela sur le net :
    http://www.kbalertz.com/135099/Error...roperties.aspx

    Je voulais voir le code où se trouve la création et l'initialisation de tes controles, de tes labels, ... on ne sait jamais d'où un bug peut venir

  8. #48
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    Private Sub Form_Load()
        lt = -1
        lt2 = -1
        RefreshInterface
     
        Dim s As String
        Dim xmldoc As MSXML2.DOMDocument30
        Dim TibcoArea As MSXML2.IXMLDOMElement
        Set xmldoc = New MSXML2.DOMDocument30
     
        s = App.Path & "\TransactKernel.conf.xml"
        xmldoc.Load s
     
        Set fc = New FeederClient
        Set TibcoArea = xmldoc.selectSingleNode("//CONFIG/TIBCO")
        fc.Init TibcoArea
     
     
        StatusBar1.Panels(1).Text = "V " & CStr(App.Major) & "." & CStr(App.Minor) & "." & CStr(App.Revision) & " "
        StatusBar1.Panels(2).Text = TibcoArea.getAttribute("SERVICE") & " "
        StatusBar1.Panels(3).Text = TibcoArea.getAttribute("NETWORK") & " "
        StatusBar1.Panels(4).Text = TibcoArea.getAttribute("DAEMON") & " "
        StatusBar1.Panels(5).Text = TibcoArea.getAttribute("ROOT_SUBJECT") & " "
     
    End Sub

  9. #49
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Heu je voulais le code où est créé et initialisé des choses comme LastTimeLabel. C'est peut être du code généré par windows.

  10. #50
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 64
    Points : 38
    Points
    38
    Par défaut Petite question technique
    Dans le lien que j'ai envoyé tout à l'heure vers un autre forum qui parle de la même erreur, la personne a répondu :

    Check if components you're using in your application are registered with regsvr32.
    Ce qu'on appelle "Components" ce sont uniquement les composants associés au projet ou aussi les références ??

    Merci pour l'info... je commence à chercher un peu plus en amont de la solution ...???...

  11. #51
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    Heu je voulais le code où est créé et initialisé des choses comme LastTimeLabel. C'est peut être du code généré par windows.
    Oui, je pense, car toute la form a été faite en graphique et des actions ont été associées à des évènements...

    Je ne sais pas si dans VB6 on peut voir cette partie du code ??

    Si oui... où ?

  12. #52
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Essaye en double cliquant sur la fenetre.

  13. #53
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    ça me fait la même chose, ça me fait arriver sur form_load...


    D'autre part, je viens de vérifier, et tous mes composants utilisés par VB sont bien enregistrés avec regsvr32...


  14. #54
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    En te déplaçant dans le code, tu ne trouves rien ?

    Désolé de ne pas pouvoir te dire exactement comment, je n'ai pas visual basic 6 d'installer, et d'ailleurs cela fait 8 ans que je ne l'ai pas utilisé

  15. #55
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    nono tu n'as pas du lire mon message, c'est quoi tm.PriceBlock ?

    J'explique ma théorie :

    1) tu passes dans ta gestion d'erreur : rollback block
    2) ton tm.PriceBlock renvoit false
    3) tu fais un viewerror : ErrorDialog.ViewError tm.GetLastErrorObject

    Et là finalement ta fichue error cannot create component, ce n'est qu'une put*** de trace qui reste dans la stack, une erreur non remontée, inibée volontairement par ton mystérieux contrôle, qui remonte.

    Selon moi tout passe comme sur des roulettes, faut juste que tu fasses un test supplémentaire avant de remonter tm.GetLastErrorObject dans ta fonction bouton 2

  16. #56
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    pour vérifier que tes controles sont toujours là avec leur nom d'origine, tu peux ajouter ça en début de ta procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim toto As Control
    For Each toto In MainWindows
      MsgBox toto.Name
    Next


    Excellent comme Idée
    Résultat :
    Passage avec le bouton1 (LoadBtn) -> 33 éléments
    Passage avec le bouton2 (PriceBtn) -> Plantage Erreur 440
    Et cela expliquerais le ci-dessus ?

  17. #57
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Citation Envoyé par nono27200
    J'ai testé.

    En faisant "Cancel" il choisit donc de partir en erreur et passe là dedans :
    Ha bon ? Juste le fait de faire Cancel provoque une erreur ? Je m'attendais à ce que ça saute le test, mais bon.
    Désolé d'insister mais alors si ca passe par le traitement d'erreur, peux tu mettre "tm.RollbackBlock" en remarque stp de façon a accéder directement à l'appel RefreshInterface.

  18. #58
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    Voilà le fameux code qui j'espère va nous faire avancer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
     
    Public Function PriceBlock() As Boolean
     
        PriceBlock = False
        If Not ((GetState = 2) Or (GetState = 3)) Then Exit Function
        SetState 2
        Set LastError = Nothing
        Set LastWarningList = Nothing
     
    On Error GoTo ErrorHandler
     
        Dim rs As Boolean
        Dim dc As IDataConnector
        Dim CurrentDeal As GenericDeal
        Dim TError As TransactionError
        Dim TWarning As TransactWarningList
     
        Set TError = New TransactionError
        Set TWarning = New TransactWarningList
     
        Set dc = Context.GetDataConnector
     
        'Si aucun deal dans le lot alors erreur
        If Deals.Count = 0 Then
            TError.SetPrimaryData 1, "", ""
            TError.SetSecondaryData 0, "Le lot ne contient aucun deal !", "", ""
            GoTo ErrorHandler
        End If
     
        If CheckBlock(dc, TWarning, TError) Then
     
          'On traite les deals un par un
          For Each CurrentDeal In Deals
              'Lock le deal en cours
              CurrentDeal.LockDeal
              rs = GetInstrumentByName(CurrentDeal.InstrumentName).PriceDeal(True, dc, Context, CurrentDeal, TWarning, TError, TKBlockID)
              If Not rs Then
                TError.SetPrimaryData 1, CurrentDeal.TKDealID, Me.GetCurrentTKBlockID
                GoTo ErrorHandler
              End If
              'Positionne le Deal en Etat 3 (Priced)
              CurrentDeal.DealOK
              'Ajoute le Stamp et le TTL
              CurrentDeal.SetTTLStamp InstrumentsTTL.Item(CurrentDeal.InstrumentName), Now
          Next
     
        Else
          GoTo ErrorHandler
        End If
     
        dc.Disconnect
     
        SetState 3
        PriceBlock = True
     
        Set LastWarningList = TWarning
        Logger.PostInfo K_TRANSACTIONMANAGER, K_TRANSACTIONMANAGER_PRICING, K_YES
        Exit Function
    ErrorHandler:
        'MsgBox "TRUE ERROR : " & Err.Description & " : " & Err.Source
     
        Err.Clear
        Set LastError = TError
        TError.AddCallStackEntry "TransactionManager.PriceBlock"
        UnlockDeals
     
        SetState 2
        PriceBlock = False
        Logger.PostInfo K_TRANSACTIONMANAGER, K_TRANSACTIONMANAGER_PRICING, K_NO
    End Function

  19. #59
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    je vais mettre des MsgBox là dedans pour voir ce qu'il y a exactement...??

    Mais pourquoi cela fonctionnerait-il en Debug ???


  20. #60
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Si VLD44 à raison (ce que je commence à croire) alors le comportement différent en debug et en release est peut être dût à la gestion de la stack qui est peut être différente selon que l'on soit en release ou en debug

Discussions similaires

  1. Exception en release mais pas en debug
    Par max-mag dans le forum Débuter
    Réponses: 2
    Dernier message: 22/08/2014, 17h32
  2. Réponses: 0
    Dernier message: 28/06/2012, 00h35
  3. Réponses: 6
    Dernier message: 20/05/2010, 12h34
  4. Acces violation avec la version release, mais pas la debug
    Par Matthieu Brucher dans le forum Qt
    Réponses: 5
    Dernier message: 07/03/2010, 22h20
  5. Problème d'exécution en release mais pas en debug (2)
    Par animageo dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/11/2007, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo