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

Windows Forms Discussion :

[C# DllImport] problème message erreur systeme


Sujet :

Windows Forms

  1. #1
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut [C# DllImport] problème message erreur systeme
    Bonjour à tous,

    Je dois créer une dll en c# à partir d'une autre dll (codé en C) que j'aurai importé.

    Mon soucis, c'est que j'effectue la totalité de mes manipulations grace aux fonctions définit dans la dll en C, le seul problème, c'est qu'a la fin de l'appel, j'ai un message d'erreur :

    L'instruction à "0x00c7b222" emploie l'adresse mémoire "0x00c9e9c". la mémoire ne peu pas être "read"


    Je ne sais pas du tout d'ou cela peu provenir.
    D'autant plus que j'arrive bien à exploiter ma dll en C.

    Voici un exemple :

    Fonction présente dans la dll en C :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unsigned short EndSession (unsigned short usSessionID)

    Voici son appel en C# :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            [DllImport("Cardw32.dll")]
            public static extern  UInt16 EndSession(UInt16 usSessionID);
    Le traitement s'effectue bien ( status retourné valide), mais toujours ce problème de message d'erreur.

    J'ai bien essayé de changer les types des paramètres, mais rien ne change, toujours ce meme message.

    Si quelqu'un à une idée, je suis prenneur.

    Merci d'avance à tous et bonne fête.

  2. #2
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2008
    Messages : 256
    Points : 311
    Points
    311
    Par défaut
    Visiblement, il s'agit d'une erreur Win32 et non d'une Exception du Framework .NET.

    Peux-tu nous préciser les traitements qu'effectuent cette DLL ?
    Il y a toujours au moins deux solutions à un problème.

    http://software-design-development.blogspot.com/

  3. #3
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut
    Citation Envoyé par Gold Bug Voir le message
    Visiblement, il s'agit d'une erreur Win32 et non d'une Exception du Framework .NET.

    Peux-tu nous préciser les traitements qu'effectuent cette DLL ?

    Merci GoldBug pour ta réponse,
    Alors la dll codé en C, se charge de communiquer avec un port série virtuel.
    Elle est aussi partagé avec d'autre application et est stocké dans "Windows"

    Sinon de mon coté, j'ai eu beau scruter le site (tutos interrop) et la fonction "recherche" du forum, je ne trouve nul part la moindre aide.

    Merci d'avance pour votre aide

  4. #4
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2008
    Messages : 256
    Points : 311
    Points
    311
    Par défaut
    Si ta DLL C lance des Threads pour communiquer avec les périphériques, peut-être que ce qui se passe c'est que la fonction rend la main alors qu'un Thread n'est pas encore terminé.
    Il y a toujours au moins deux solutions à un problème.

    http://software-design-development.blogspot.com/

  5. #5
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut
    Citation Envoyé par Gold Bug Voir le message
    Si ta DLL C lance des Threads pour communiquer avec les périphériques, peut-être que ce qui se passe c'est que la fonction rend la main alors qu'un Thread n'est pas encore terminé.

    Le soucis, c'est que je n'ai aucune idée du contenus précis de cette dll, je n'ai en ma possession que les déclarations des fonctions.

    Comment procéder pour valider que ca provienne bien de ca ?

    Merci GoldBug

  6. #6
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2008
    Messages : 256
    Points : 311
    Points
    311
    Par défaut
    Si je comprends bien, tu fais plusieurs appels à des méthodes de cette DLL, et tu dois terminer par un appel à la méthode EndSession() qui plante.

    Est-ce que tu as essayé d'introduire une temporisation avant l'appel à cette dernière fonction ?
    Il y a toujours au moins deux solutions à un problème.

    http://software-design-development.blogspot.com/

  7. #7
    Débutant
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Points : 324
    Points
    324
    Par défaut
    Citation Envoyé par Gold Bug Voir le message
    Si je comprends bien, tu fais plusieurs appels à des méthodes de cette DLL, et tu dois terminer par un appel à la méthode EndSession() qui plante.

    Est-ce que tu as essayé d'introduire une temporisation avant l'appel à cette dernière fonction ?
    Oui, mais ce message est présent pour toute les fonctions, pas uniquement pour "endSession".

    En faites tout fonctionne, j'arrive bien à faire des appels de fonctions, à communiquer avec la dll à récuperer des status etc...

    Ne seul problème, c'est ce message d'erreur récurrent, je ne vois pas du tout ce qui le provoque etant donné que la totalité du traitement se déroule bien.

    Merci encore GoldBug pour ton aide.

Discussions similaires

  1. Problème avec message erreur
    Par Udani dans le forum MATLAB
    Réponses: 10
    Dernier message: 21/12/2009, 06h58
  2. [E-07] Problème message d'erreur
    Par law56100 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/03/2009, 16h04
  3. Message d'erreur systeme
    Par adok89 dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 15/09/2008, 09h53
  4. problème message d'erreur avec konqueror
    Par thou92 dans le forum Ubuntu
    Réponses: 0
    Dernier message: 11/01/2008, 10h19
  5. Problème message d'erreur et action sur clic
    Par rangernoir dans le forum Access
    Réponses: 5
    Dernier message: 26/09/2005, 12h10

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