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 :

impossible d'intégrer un module compilé dans un programme plus gros?


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 101
    Points : 74
    Points
    74
    Par défaut impossible d'intégrer un module compilé dans un programme plus gros?
    Voici mon souci, et oui encore un
    je suis en train d'essayer d'intégrer un exécutable dans un programme plus gros.
    Le code contenu dans l'exécutable, même s'il n'est pas très bien écrit est à priori sans erreur car quand je le lance tout seul il fait ce qu'il a à faire sans problème.
    Je veux bien afficher le source mais il est particulièrement long et à part de la mise en page il ne fait rien de bien méchant.
    Voici là où je pense que ça coince:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    FicExcel = Dir(CheminEnreg & "\NomenclatureMEPA3.xls")
    If FicExcel <> "" Then Kill FicExcel
    Err.Clear
    On Error GoTo 0
    Shell "D:\prg vb\nomenclatures impression\mise en page A3.exe"
     
    Do While FicExcel = ""
    FicExcel = Dir(CheminEnreg & "\NomenclatureMEPA3.xls")
    Sleep (1000)
    Loop
    Pour être plus précis c'est juste après le "shell" que ça coince, mais pas tout le temps. Et en plus quand ça se produit le programme ne s'arrête pas bien qu'il y ait l'instruction on error goto 0.
    Et ce que je comprends vraiment pas c'est que le fichier traité par le shell soit bien traité. Une idée?
    Le but but du do while loop c'est de faire attendre le programme mais ça ça n'a pas l'air de poser de problème
    Merci. A+

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bonjour spileo .. ben moi j'ai toujours pas compris quel était ton environnement de développement... d'ou sorte ces exécutables...?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 101
    Points : 74
    Points
    74
    Par défaut
    Bonjour bbil.
    C'est vrai que j'ai pas été forcément très clair.
    Je programme avec MS Visual Basic 6.0 sous windows xp.
    Ces exécutables sont justes des projets que j'ai créés, toujours en Visual Basic, que j'ai compilés pour en faire des exécutables et que j'essaye maintenant d'utiliser dans un plus gros projet. J'ai fait ça uniquement pour raccourcir le code de mon programme principal et aussi parce que ces exécutables sont utilisés par d'autres programmes qui n'ont rien à voir avec celui que je suis en train d'écrire. En fait je pense que ces exécutables sont un peu comme des dll?

    Comme cette erreur ne se produit pas tout le temps, il m'était difficile de la pieger. Voici le message d'erreur provenant de l'exécutable en question qui utilise Excel

    A+.
    Images attachées Images attachées  

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 101
    Points : 74
    Points
    74
    Par défaut
    Bon finalement j'ai laissé tomber les exécutables, j'ai intégré le module (module A) qui contient leur code source directement au projet de mon programme principal.
    Seulement il reste un problème.
    L'éxécution du code que contient le module A est déclenchée par le clic d'un bouton sur une form. Pour déclencher le chargement de la forme, j'utilise ça:
    A partir de là le code contenu dans la form s'exécute correctement. Seulement quand on clique sur le bouton de la form qui sert à déclencher l'exécution du code du module A, rien ne se passe.
    Franchement j'y comprends rien.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 101
    Points : 74
    Points
    74
    Par défaut
    Bonjour à tous.
    Petite question:
    est-il possible de déclencher l'apparition d'une form dans une boucle if ... end if?
    Je m'explique: dans un module, je déclenche la procédure évènementielle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Form_load()
    de la feuille nomfic par l'instruction qui se trouve entre deux statements if ... end if
    Quand cet évènement se produit, le code contenu dans la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Form_load()
    s'exécute correctement (j'ai ajouté un espion Err et il est en permanence à 0). Voici ce code:
    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()
        On Error GoTo 0
        nomfic.Hide
        Dim CATIA As Object
        Set CATIA = GetObject(, "CATIA.Application")
        Dim product As ProductDocument
        Set product = CATIA.ActiveDocument
        Dim msg As String
        nomchantier = CATIA.ActiveDocument.Path
        nomchantier = Left(nomchantier, InStr(nomchantier, "\Catia") - 1)
        While InStr(nomchantier, ":\") <> 0
            nomchantier = Right(nomchantier, Len(nomchantier) - InStr(nomchantier, "\"))
            While InStr(nomchantier, "\") <> 0
                nomchantier = Left(nomchantier, Len(nomchantier) - InStr(nomchantier, "\"))
            Wend
        Wend
        msg = "Le nom du chantier trouvé est " & nomchantier & ". Pour continuer avec ce nom, cliquer sur OK. " & _
        "Sinon, veuillez saisir un autre nom et cliquer sur OK."
        nomfic.NomChantierTrouve.Caption = msg
        NomDuChantier.Text = nomchantier
        nomfic.Show
        nomfic.ZOrder
        Feuille_principale.Hide
        Set CATIA = Nothing
    End Sub
    Quand le compilateur arrive à l'instruction juste avant la fin, on ne peut pas cliquer sur un bouton qui se trouve sur la Form nomfic car dès que le compilateur atteint l'instruction end sub de la procédure form load, la prochaine instruction qu'il rencontre est le end if de la boucle qui sert à déclencher le form load.
    D'où ma question. J'espère avoir été assez clair. Merci pour vos réponses.

  6. #6
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    J'ai pas tout compris
    Mais une vague idée, dans ta boucle for/next, utilise , ca interomp la bouble tant que la feuille lancée n'est pas fermée
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 101
    Points : 74
    Points
    74
    Par défaut
    Effectivement ça va déjà nettement mieux.
    Bon j'ai d'autre erreurs maintenant mais ça en fait une de moins déjà.
    Autre chose aussi: c'est quoi la différence au juste entre Visual Basic et VBA parce que ça fait un petit moment que je traîne sur les forums et franchement je vois pas parce que quand je copie du code dit VBA dans mon programme qui est sensé être écrit en VB tout court ça l'empêche pas de fonctionner et la réciproque est vraie. Franchement c'est gênant de pas savoir en quel langage on écrit quand on essaie de construire un truc un temps soit peu rigoureux. A+ et encore merci.

  8. #8
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Vba c'est le vb intégré dans les applis-phare de M.Bill comme Access,Excel ou Word
    Vb , c'est utiliser le compilateur Microsoft Visual Basic

    N'oublie pas le Tag Résolu si la reponse te conviens
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 101
    Points : 74
    Points
    74
    Par défaut
    D'accord mais ça change rien, à part les fonctions, méthodes, objets, etc. propres à chaque application, à la manière de programmer? A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Intégrer du code Java dans un programme Qt en C++
    Par black_hole dans le forum Qt
    Réponses: 7
    Dernier message: 11/12/2012, 20h42
  2. l'intérêt des langages compilés dans la programmation web
    Par mon_nom_est_personne dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 27/08/2009, 08h13
  3. Impossible d'intégrer de l'ajax dans ma fonction javascript
    Par mioke dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/05/2009, 17h15
  4. Lancer du code .NET non compilé dans son programme
    Par Risike dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 02/02/2009, 12h53
  5. Intégrer un code assembleur dans un programme
    Par laracroft87 dans le forum C
    Réponses: 5
    Dernier message: 27/04/2008, 18h15

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