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++/CLI Discussion :

[C#/dll C] Comment indiquer un emplacement different de system32 ?


Sujet :

C++/CLI

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 349
    Par défaut [C#/dll C] Comment indiquer un emplacement different de system32 ?
    Salut !

    Je suis débutant en C# et je doit appeler une fonction contenue dans une dll écrite en C. J'ai regardé dans la FAQ C# et j'ai trouvé comment le faire mais ma dll doit être dans le dossier system32.

    Mais si la dll se trouve ailleurs, comment indiquer son emplacement ?

    Merci.

    ++

  2. #2
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Fait une recherche google sur le P/Invoke

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 11
    Par défaut
    Salut

    Dans la fenetre ''Explorateur de solution'', au niveau de ton projet tu as un dossier références. Click droit sur ce dossier puis ajouter une réference. Ainsi une fenetre s'ouvre, là tu click sur parcourir et tu vas chercher ta DLL, puis tu valid ton choix.

    Dans le dossier réference tu dois avoir un nouvel item qui à le nom de ta DLL, alors ca y es tu as ajouter ta DLL dans ton projet et tu dois avoir access au objets de ta DLL



    a+ RockCoeur

  4. #4
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Citation Envoyé par rockcoeur
    Salut
    Dans la fenetre ''Explorateur de solution'', au niveau de ton projet tu as un dossier références. Click droit sur ce dossier puis ajouter une réference. Ainsi une fenetre s'ouvre, là tu click sur parcourir et tu vas chercher ta DLL, puis tu valid ton choix.

    Dans le dossier réference tu dois avoir un nouvel item qui à le nom de ta DLL, alors ca y es tu as ajouter ta DLL dans ton projet et tu dois avoir access au objets de ta DLL
    a+ RockCoeur
    Ceci n'est valable que pour une dll managée .Net

    C'est effectivement P/Invoke qui est la solution à exploitée

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 349
    Par défaut
    Re !

    Tout d'abord merci à vous pour votre aide.

    Alors voilà ce que j'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    [DllImport("interface.dll")]
            static extern void interface__open
            (
                int used_port,
                long supply_voltage
            );
    Ensuite j'appelle ma fonction mais malgré des recherches je n'ai pas trouvé comment indiquer un autre dossier que system32 pour chercher ma dll. Tous les exemples que j'ai vu utilisent des dll situées dans system32...

    Voici ce qu'ont donné mes recherches :
    http://faqcsharp.developpez.com/?pag...syst_apiinvoke
    http://morpheus.developpez.com/dlldotnet/
    http://www.microsoft.com/france/msdn...z-Pinvoke.mspx

    J'avoue que je suis un peu perdu..

    ++

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2006
    Messages : 349
    Par défaut
    J'ai trouvé, c'était tout bête mais encore fallait-il le savoir... ça ne fonctionnait pas quand j'indiquais un chemin complet parce que je ne doublais pas le backslash...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    [DllImport("C:\\interface.dll")]
    static extern void interface__open
    (
         int used_port,
         long supply_voltage
    );
    ++

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 55
    Par défaut
    Citation Envoyé par SesechXP
    J'ai trouvé, c'était tout bête mais encore fallait-il le savoir... ça ne fonctionnait pas quand j'indiquais un chemin complet parce que je ne doublais pas le backslash...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    [DllImport("C:\\interface.dll")]
    static extern void interface__open
    (
         int used_port,
         long supply_voltage
    );
    ++


    Et tu peux aussi utiliser le '@' devant la chaîne, pour éviter de doubler les backslashes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [DllImport(@"C:\interface.dll")]

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

Discussions similaires

  1. Comment indiquer l'emplacement de la DLL
    Par touhami dans le forum Delphi
    Réponses: 10
    Dernier message: 13/03/2007, 17h07
  2. Réponses: 4
    Dernier message: 25/10/2005, 08h48
  3. Comment indiquer un critère chiane non vide
    Par le lynx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/08/2005, 12h38
  4. Réponses: 13
    Dernier message: 16/03/2005, 11h29
  5. automation excel : comment indiquer la feuille de travail ?
    Par mat_lefebvre dans le forum Access
    Réponses: 2
    Dernier message: 04/12/2003, 15h14

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