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 :

Chargement dynamique d'une assembly (32 bit ou 64 bit)


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Chargement dynamique d'une assembly (32 bit ou 64 bit)
    Bonjour,

    Je vous expose notre problème.
    Nous utilisons une DLL pour gérer l'impression PDF (cela ne changera pas)
    Selon le poste (32 ou 64 bit) il existe une DLL dédiée (les 2 ont le même nom, appelons les PDF.dll)

    Je souhaiterais qu'au lancement de notre application, soit chargée la dll correspondant à la config' du poste, c'est à dire que le projet c#/asp.net référence une DLL et pas l'autre.

    Comment procéder ?
    Remarque : nous ne voulons pas créer 2 projets de déploiement (1 pour le 32 bit, l'autre pour le 64).
    Nous souhaitons un "chargement dynamique" de la bonne assembly.

    Savez-vous dans quelle direction chercher ?

    Merci beaucoup !
    T.

  2. #2
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Bonjour, si vous utilisez le framework .NET 4.0, voici 2 nouvelles propriétés qui pourront vous aider :
    - Is64BitOperatingSystem
    - Is64BitProcess
    Cordialement.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    OK, merci.
    Je sais donc identifier mon environnement (j'aurais pu également faire un test sur IntPtr) mais comment en 32/64 bit charger la bonne dll (les versions 32 et 64 bit ont notamment le même nom)

  4. #4
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par tbruchet Voir le message
    (j'aurais pu également faire un test sur IntPtr)
    Seulement si tu compiles en ANYCPU!
    Ensuite pour loader dynamiquement la bonne DLL, il me semble que le traitement est différent selon que ce soit une DLL managée ou non.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci.
    Dans la mesure où je sais identifier l'environnement et le type de DLL (managé ou non), pourriez-vous m'indiquer comment charger de manière conditionnelle l'une ou l'autre DLL ?
    T.

  6. #6
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Pour une dll managée, il faut simplement compiler en ANYCPU, c'est la même dll pour les 2 environnements, pour une dll non managée : http://stackoverflow.com/questions/1...-bit-or-64-bit
    Ce lien peut aussi t'aider.
    Cordialement.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

Discussions similaires

  1. Chargement dynamique d'une archive.jar
    Par cfrayer dans le forum Langage
    Réponses: 5
    Dernier message: 29/08/2006, 16h00
  2. [ClassLoader] Chargement dynamique d'une classe -> problème avec packages !
    Par ymerej dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 31/05/2006, 21h37
  3. Réponses: 2
    Dernier message: 25/10/2005, 18h03
  4. [CR.NET]Chargement dynamique d'une image
    Par Moah dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 14/12/2004, 11h46
  5. Réponses: 19
    Dernier message: 26/04/2004, 08h54

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