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 Discussion :

Déploiement et DLL


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Déploiement et DLL
    Bonjour,

    je ne suis pas sûr de poster ce message dans la bonne sous-partie du Forum j'ai hésité avec la zone 'langage C'.

    Voici mon problème : je fais le développement en C d'un plug-in pour un logiciel de math (Mathcad). Ce plug-in est sous la forme d'un fichier DLL, compilé avec une bibliothèque fournie par les fabricants du logiciel. Mon fichier DLL est développé sous Visual Studio, j'utilise le compilateur intel + 2 librairies intel (TBB et MKL).

    Tout fonctionne très bien sur ma machine de développement. Or je dois donner ce fichier DLL à des gens qui n'ont pas d'environnement de développement installé. Et là çà ne fonctionne plus. Pour faire mes tests, j'ai installé un PC de zero avec uniquement le logiciel Mathcad. Même en faisant un test simple sans incorporer les librairies Intel, rien ne marche. J'ai regardé avec TASKLIST les DLL chargées par Mathcad sur ma machine développement, puis j'ai regardé sur la meme machine ce qui était chargé en supprimant ma DLL, afin de regarder, par différence, quelles sont les DLL chargées par ma propre DLL. Je pensais qu'en recopiant les DLL en question (MSVCRT90.DLL par exemple) dans Windows/System32 tout marcherait or il n'en n'est rien. J'ai essayé aussi de recopier les DLL en question dans le même répertoire que le plug-in, et la Mathcad me donne une erreur "Runtime Error R6034 - An application has made an attempt to load the C runtime library incorrectly. Please contact the application's support team for more information". Or si je me trompe pas, le "support team" c'est supposé être moi non ?

    Avez vous une piste à explorer pour comprendre ce qui se passe ?

    En vous remerciant d'avance ...

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Il faut installer les vc_redist sur les machines qui vont faire tourner ton application.


    Regarde ici (dans la FAQ) : http://cpp.developpez.com/faq/vc/?pa...stributeMFCApp.

    Les info qu'il y a dedans date de VC6 mais c'est du même tonneau pour Visual Studio 2005 et 2008.
    Microsoft + vcredist dans devrait t'aider
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci pour cette réponse rapide. J'étais bien tombé sur cette page mais j'avais cru que c'était spécifique à Visutall Studio 6.
    Grace au mot-clé "redist" je suis tombé la dessus :
    http://www.microsoft.com/downloads/d...displaylang=en

    J'ai une question un peu plus en profondeur : que fait ce package a part "recopier des DLL" ? y-a-t-il des entrées supplémentaires dans la base de registres par exemple ?
    De plus, cette solution est propriétaire aux DLL microsoft. Est ce que lorsque l'on utilise des DLL hors microsoft (dans mon cas les DLL intel) il y a toujours un "redist" disponible ?
    Merci encore ...

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par JoeDalton Voir le message
    J'ai une question un peu plus en profondeur : que fait ce package a part "recopier des DLL" ? y-a-t-il des entrées supplémentaires dans la base de registres par exemple ?
    Il fait probablement autre chose (regsitry) car la simple recopie des fichiers ne suffit pas.
    Citation Envoyé par JoeDalton Voir le message
    De plus, cette solution est propriétaire aux DLL microsoft. Est ce que lorsque l'on utilise des DLL hors microsoft (dans mon cas les DLL intel) il y a toujours un "redist" disponible ?
    Merci encore ...
    Je dirais plutôt que cette solution doit être appliquée pour toutes les applications/DLL/machins développés avec Visual Studio
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bon après quelques essais voici ce qui ressort :
    Comme vous me l'avez indiqué, il faut récupérer le "redist" propre au Visual Studio employé pour le développement. Dans mon casn j'ai tapé "redist visual studio 2008" dans google, ce qui m'a envoyé ici :
    http://www.microsoft.com/downloads/d...displaylang=en
    Sur ce lien on peut télécharger le "redist" idoine. En revanche c'est la seule bizarrerie que j'ai pu noter sur l'utilisation de DLL externes. En ce qui concerne les librairies intel que j'utilise par exemple il suffit bêtement de recopier les DLL utiles dans Windows/System32.

    Bon maintenant tout marche correctement, je vous remercie pour votre aide.

  6. #6
    Membre actif Avatar de Twindruff
    Inscrit en
    Janvier 2005
    Messages
    216
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 216
    Points : 237
    Points
    237
    Par défaut
    Tu ne peux pas juste recopier les dll du runtime parce que ce sont des SxS assemblies, elles ont un manifest etc. Tout ça se passe dans %WINDIR%\WinSxS.

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Tu peux "juste les recopier" si tu prends le manifest avec.

    C'est là qu'intervient la différence entre "private assembly" et "shared assembly"...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

Discussions similaires

  1. [Débutant] Déploiement de dll "maison"
    Par zoorgh dans le forum VB.NET
    Réponses: 1
    Dernier message: 14/02/2012, 20h03
  2. Déploiement Application DLL
    Par Jayjay84 dans le forum C#
    Réponses: 3
    Dernier message: 18/07/2011, 18h18
  3. Déploiement de DLL
    Par HeleneaLuwina dans le forum Développement Windows
    Réponses: 4
    Dernier message: 02/03/2011, 09h50
  4. [Déploiement] Code Java nécessitant une dll
    Par nicolas.pied dans le forum Général Java
    Réponses: 3
    Dernier message: 12/01/2006, 19h45
  5. [déploiement] Dll portable
    Par yoyo30 dans le forum Access
    Réponses: 2
    Dernier message: 10/10/2005, 15h23

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