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 :

Appel de DLL depuis c#


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 30
    Par défaut Appel de DLL depuis c#
    Bonjour,
    Je dois utiliser une DLL depuis un programme en c# (ma Dll est codé en C).
    L'appel se fait correctement depuis le PC où j'ai développé mon programme depuis vs express 2008. Aussi si je vais dans le repertoire bin\debug ou release et que j'execute l'application tout marche bien.
    Maintenant mon problème est que je dois tout mettre sur un autre ordinateur et là sa marche plus. j'ai un message :
    Unable do load DLL
    My_Dll_usb.dll: le module spécifié est introuvable. (Exception from RESULT:0x8007007E)
    Que je fasse depuis vs express installé sur la 2eme machine ou directement depuis un exe, sa ne marche pas.
    Je tiens aussi à dire que les Dll se trouve dans le même repertoire que le fichier exe, d'ailleurs si je renomme le fichier Dll sur l'ordinateur ou tout marche d'habitude il me met la meme erreur (qui cette fois est normal vue que j'ai changer le nom). Tout ça pour dire qu'il cherche bien la Dll qu'il faut et au bonne endroit alors je comprends pas pourquoi ailleurs sa ne marche pas !!!
    Avez-vous une idée ?
    Je programme sur un ordi 32 bits, l'autre sera un 64 mais j'ai aussi essayé sur un autre pc 32 et c'est pareil...

  2. #2
    Membre confirmé Avatar de djo_matrix
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 139
    Par défaut
    tu peut envoyé ton code de dll pour voir ou est le probleme ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 30
    Par défaut
    Je peux te mettre la partie qui déclare la fonction se trouvant dans la Dll, malheureusement je peux pas t'envoyer le code de la Dll mais de toute façon le prob ne se trouve pas là, car comme je l'ai dit, ça fonctionne très bien sur mon PC de developpement aussi bien directement avec l'exe ou depuis l'environnement de developpement et la Dll à été utilisé par d'autre appli en delphi sans problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     [DllImport("Spw_Dll_usb.dll")]
            public static extern int OpenSpaceWireDevice(uint speed);

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 337
    Par défaut
    Moi pour utiliser une dll dans mes projets je l'ajoute simplement aux références de mon projet. Ensuite me suffit d'ajouter l'instruction using maDll; et voilà.

  5. #5
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Citation Envoyé par hotsizzle Voir le message
    Moi pour utiliser une dll dans mes projets je l'ajoute simplement aux références de mon projet. Ensuite me suffit d'ajouter l'instruction using maDll; et voilà.
    ça marche pour utiliser une dll managée, pas une dll native (ce qui est le cas ici).

    Sinon le problème ne vient peut être pas de la dll, mais des dlls qu'elle même utilise. Utilise Dependency Walker (google ...) pour vérifier si toutes les dépendances de ta dll Spw_Dll_usb.dll et ainsi de suite existent bien sur la machine cible.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 30
    Par défaut
    Oui, Merci beaucoup c'est exactement ça, j'ai eu par hasard le même réflexe
    Et j'ai pu voir qu'effectivement il me manquait des sous dépendance de ma Dll du fait que j'avais prit une version debug de la Dll plutôt que la version release.

    bravo et merci.

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

Discussions similaires

  1. Appeler une DLL depuis Javascript
    Par troubleshooting dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/07/2008, 14h45
  2. appeler une DLL depuis un executable
    Par xxiemeciel dans le forum Framework .NET
    Réponses: 10
    Dernier message: 09/07/2007, 14h42
  3. Appel de DLL Fortran depuis C/C++
    Par ultimate_manx dans le forum Fortran
    Réponses: 3
    Dernier message: 31/05/2007, 13h44
  4. appel de dll depuis VBA
    Par darkman10 dans le forum Windows
    Réponses: 3
    Dernier message: 10/05/2006, 15h03
  5. Appeler une unité depuis une DLL
    Par xavier ringoise dans le forum Langage
    Réponses: 2
    Dernier message: 03/02/2006, 21h31

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