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

 C Discussion :

récupérer les erreurs survenant dans ma dll en vba


Sujet :

C

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2008
    Messages : 97
    Points : 143
    Points
    143
    Par défaut récupérer les erreurs survenant dans ma dll en vba
    Bonjour,

    j'ai écrit une dll en c et pour gérer mes erreurs j'ai mis des lorsque j'utilise ma dll en vba access, la dll ne fonctionne pas, mais pas moyen de récupérer les infos d'erreurs.

    comment faire pour bien gérer les erreurs quand on fait une dll pour pouvoir les récupérer dans le code utilisant la dll. (ou même dans un fichier de log)

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Une solution peut être de lancer ton programme en ligne de commande du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto.exe 1> out.txt 2> err.txt
    Ce genre de manipulation fonctionne bien quand on utiliser cygwin, avec la console cmd.exe de base, c'est parfois moins top.


    Après, si cela ne fonctionne pas, tu peux modifier ta dll pour rediriger les flux stderr et stdin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    /* ligne à placer dans la fonction DllMain */
    freopen ( "out.txt", "w", stdout);
    freopen ( "err.txt", "w", stderr);

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mkl238 Voir le message
    comment faire pour bien gérer les erreurs quand on fait une dll pour pouvoir les récupérer dans le code utilisant la dll. (ou même dans un fichier de log)
    affecter errno...

    En vérifiant qu'on n'écrabouille pas une valeur qui peut être levée par les fonctions appelées dedans...

    Le plus simple et le plus standard..

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2008
    Messages : 97
    Points : 143
    Points
    143
    Par défaut
    Merci pour vos réponse...

    @mabu:
    pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto.exe 1> out.txt 2> err.txt
    J'utilise la dll dans access et malheureusement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaBase.mdb 1> out.txt 2> err.txt
    remplis bien les fichiers mais pas avec erreurs de la dll, uniquement ceux propres a access... (si je la base est déja utilisée par ex)

    et pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    /* ligne à placer dans la fonction DllMain */
    freopen ( "out.txt", "w", stdout);
    freopen ( "err.txt", "w", stderr);
    Ca ne fonctionne pas bien...
    disons que quand je fais un printf directement dans le DllMain ca met bien la sortie dans les fichiers mais pas quand je le fait dans mes autres fonctions.

    Finalement je pense prendre l'option messagebox (sauf contre-indication):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        if(NULL == (stopList->pictures[0] = calloc(7, sizeof(char))))
        {
            MessageBoxA(0, strerror(errno), "Erreur lors de l'allocation de mémoire", MB_OK | MB_ICONERROR);
            return -3;
        }

  5. #5
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par mkl238 Voir le message
    Finalement je pense prendre l'option messagebox (sauf contre-indication):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        if(NULL == (stopList->pictures[0] = calloc(7, sizeof(char))))
        {
            MessageBoxA(0, strerror(errno), "Erreur lors de l'allocation de mémoire", MB_OK | MB_ICONERROR);
            return -3;
        }
    Si tu est encore en phase de développement de ta DLL, je te conseille d'utiliser une bibliothèque dédiée au log : http://www.developpez.net/forums/d85...essages-trace/ par exemple.

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2008
    Messages : 97
    Points : 143
    Points
    143
    Par défaut
    merci pour l'info

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

Discussions similaires

  1. [MySQL] Récupérer les valeurs définies dans un champ ENUM
    Par Huntress dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/07/2010, 18h55
  2. Récupérer les mails Outlook dans une table Access
    Par zerrokooll dans le forum VBA Access
    Réponses: 79
    Dernier message: 07/07/2009, 14h22
  3. récupérer les erreurs php dans des exceptions
    Par jeanvincent dans le forum Langage
    Réponses: 6
    Dernier message: 14/10/2005, 16h26
  4. Récupérer les données interbase dans une TStringGrid
    Par Ousse dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/03/2005, 12h51
  5. Comment récupérer les adresses WWW dans Internet Explorer ?
    Par chaours dans le forum Web & réseau
    Réponses: 7
    Dernier message: 03/09/2003, 14h27

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