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

MFC Discussion :

portabilité d'une dll


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut portabilité d'une dll
    Bonjour,

    D'avance désolé si cette question vous semble idiote ou déjà vue 42.357 fois, mais j'ai beau faire le tour des posts sur le sujet, je ne trouve pas vraiment la réponse adéquate.

    Je développe en Java (non, non, je ne me suis pas trompé de forum, je vous assure), et je dois utiliser une dll qu'on me fournit. Pour faire ça, le principe est de créer une dll interface qui fera le lien entre la dll fournie et mon programme Java.
    J'ai développé cette dll sous Windows XP et j'ai quelques soucis lors de son utilisation sous Windows 2000.

    Pour y remédier :
    - j'ai essayé de compiler ma dll en mode "Use MFC in a static library" plutôt qu'en mode "Use MFC in a shared library" => pas d'améliorations.
    - j'ai essayé de modifier les paramètres de génération, et donc de passer de Multithreaded à toutes les autres options, mais à ce moment-là j'ai des erreurs de compil... (et je n'ai pas vraiment cherchés à les résoudre, ne sachant pas si ça ferait marcher ma dll et m'étant déjà suffisamment arraché les cheveux là-dessus)
    - j'ai regardé les dépendances de ma dll via l'utilitaire fourni avec Visual Studio. J'obtiens cette liste :
    c:\windows\system32\ADVAPI32.DLL
    c:\windows\system32\COMCTL32.DLL
    c:\windows\system32\COMDLG32.DLL
    c:\windows\system32\GDI32.DLL
    c:\windows\system32\KERNEL32.DLL
    c:\windows\system32\MSVCRT.DLL
    c:\windows\system32\NTDLL.DLL
    c:\windows\system32\OLE32.DLL
    c:\windows\system32\OLEAUT32.DLL
    c:\windows\system32\OLEDLG.DLL
    c:\windows\system32\OLEPRO32.DLL
    c:\windows\system32\RPCRT4.DLL
    c:\windows\system32\SHELL32.DLL
    c:\windows\system32\SHLWAPI.DLL
    c:\windows\system32\USER32.DLL
    c:\windows\system32\WINSPOOL.DRV

    - j'ai récupéré le vcredist_x86.exe dont on parle dans la FAQ mais je ne l'ai pas encore installé car je ne pense pas que ça puisse m'aider étant donné les dépendances trouvées.

    Or comme sous Windows 2000 les fichiers sont placés sous c:\winnt\system32 et que les versions des fichiers dépendants ne sont pas les mêmes, je me demandais si mon problème pouvait venir de là ou pas. Qu'est-ce que vous en pensez?

    Si ça vient de là, comment puis-je ajouter ces dll à la dll que je crée? (je n'ai pas trouvé l'utilitaire vcredist)?
    Suis-je obligé de remplacer les fichiers existants sur le PC cible par les fichiers que j'ai sur mon PC?
    Est-ce que ça ne risque pas de "déstabiliser" le poste cible?

    Dois-je recompiler ma dll sous un poste possédant Windows 2000? Auquel cas, la dll sera-t-elle toujours dépendante du système? (fonctionnera-t-elle sous 2000 et plus sous XP)

    Je débute vraiment dans la création et l'utilisation de dll, alors n'importe quel indication me sera précieuse.

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    Tu as omis de dire quel était le problème rencontré précisément sous windows 2000...

  3. #3
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Effectivement.

    Ben en fait, j'ai un crash de mon appli Java et il me dit ceci :
    "javaw.exe a généré des erreurs et sera fermé par Windows. Vous devrez redémarrez le programme.

    Un journal des erreurs est en cours de création."

    Par contre, j'ai trouvé aucune trace de rapport d'erreur. J'ai même cherché dans l'observateur d'événements, mais peanuts...
    Images attachées Images attachées  

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    au final il y a t-il un contexte d'environnement où cette dll fonctionne correctement ?

  5. #5
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Citation Envoyé par farscape
    au final il y a t-il un contexte d'environnement où cette dll fonctionne correctement ?
    Oui quand même
    Sous n'importe quel poste où Windows XP est le système d'exploitation.
    C'est pour ça que je me demande si la dll que j'ai générée est dépendante du système d'exploitation...

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    alors il est possible que cela vienne de la version des dll systémes.
    je tenterai une mise à jour des dll avec vcredist_x86.exe dans le cas de visual 6.
    pour visual 2005 c'est : http://www.developpez.net/forums/sho...72#post1047972

Discussions similaires

  1. Portabilité d'une DLL VC++ 2008
    Par Ggrognon dans le forum Visual C++
    Réponses: 4
    Dernier message: 08/07/2009, 14h46
  2. pb de récup de handle à partir d'une dll
    Par yokito dans le forum Langage
    Réponses: 2
    Dernier message: 20/08/2002, 12h29
  3. Utilisation d'une dll écrite en delphi 5 dans VB6
    Par Jean-Louis dans le forum Langage
    Réponses: 4
    Dernier message: 05/08/2002, 09h19
  4. Declarer une dll Delphi ?
    Par DelphiCool dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 10h07
  5. Equivalent à ExeName pour une DLL
    Par Smortex dans le forum Langage
    Réponses: 7
    Dernier message: 16/07/2002, 21h07

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