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

Framework .NET Discussion :

appeler une DLL depuis un executable


Sujet :

Framework .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut appeler une DLL depuis un executable
    j'ai un petit soucis assez etrange. j'ai un executable en C++ managé qui utilise une DLL ( elle aussi en C++ managé ).

    le programme fonctionne bien si je copie la DLL dans le repertoire de l'executable mais il crash si jamais je met la DLL dans un autre repertoire ( je precise que ce repertoire est quand meme dans la variable d'environment Path ).

    Est ce normal ?

    XXiemeciel

  2. #2
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    C'est normal. Si je me souviens bien, tu dois pouvoir placer ta Dll dans un répertoire qui porte le même nom qu'elle et qui est un sous-répertoire du répertoire contenant ton exécutable. Ai-je été clair ? Je vais essayer de te trouver l'ensemble des cas de recherche...

  3. #3
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    ok merci, si tu as de la documentation ( en anglais de preference ) je suis preneur.

    XXiemeciel

  4. #4
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Voici comme promis l'algorithme de recherche d'assemblage par le CLR. L'application est installée dans le répertoire ApplicationDirectory et l'assembly recherché se nomme MyAssembly.

    - ApplicationDirectory\MyAssembly.dll
    - ApplicationDirectory\MyAssembly\MyAssembly.dll
    - ApplicationDirectory\MyPrivatePath\MyAssembly.dll
    - ApplicationDirectory\MyPrivatePath\MyAssembly\MyAssembly.dll

    Si rien n'est trouvé, l'extension .exe est utilisée à la place de .dll.

    MyPrivatePath se configure de la façon suivante :
    dans le fichier .config de ton application, tu peux définir des chemins privés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <runtime>
       <assemblyBinding xmlns="urn:scemas-microsoft-com:asm.v1">
          <probing privatePath="MyPrivatePath" />
       </assemblyBinding>
    </runtime>

  5. #5
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    qu'appelles tu le fichier .config ? est un fichier que je peux creer avec l'executable ?

    est-il genere par la compilation ? je n'utilise pas visual studio pour compiler. j'appelle directement cl.exe depuis une ligne de commande et un makefile.

  6. #6
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    C'est le fichier de configuration de ton exécutable.
    Si ton programme se nomme Program.exe, alors le fichier de configuration sera Program.exe.config.
    Tu peux le créer à la main. C'est un fichier Xml placé à côté de ton exécutable. Par contre, tu dois inclure le Xml que je t'ai fourni dans une balise Configuration :
    <configuration>
    <runtime>
    <assemblyBinding xmlns="urn:scemas-microsoft-com:asm.v1">
    <probing privatePath="MyPrivatePath" />
    </assemblyBinding>
    </runtime>
    <configuration>

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

Discussions similaires

  1. Appeler une dll C# depuis VBA
    Par doudblast dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 17/08/2009, 15h07
  2. Appeler une dll ou un autre module vba depuis une macro excel vba
    Par technobiz dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/11/2008, 14h24
  3. Réponses: 5
    Dernier message: 08/08/2008, 14h48
  4. Appeler une DLL depuis Javascript
    Par troubleshooting dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/07/2008, 14h45
  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