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

Visual C++ Discussion :

DLL mode debug ou release


Sujet :

Visual C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    57
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 57
    Par d�faut DLL mode debug ou release
    Bonjour,

    Sous Visual C++ 2008, j'ai fait une DLL (juste pour info 1 classe et 1 proc�dure). Elle est en mode non manag�e, W32 basique.
    Si je compile cette DLL en mode debug et que je l'utilise dans mon projet global (/clr par contre), lui aussi en mode debug, aucun probl�me tout fonctionne.
    Si je compile la DLL en mode release, et que je l'utilise dans le projet qui reste en mode debug une partie du code seulement fonctionne (par exemple le constructeur de ma class, mais pas ma proc�dure). Pas de debug possible dans ce mode bien s�r.
    Quand je dis "je l'utilise", c'est en mettant *.lib, *.dll, *.h dans le m�me r�pertoire que le projet global pour �tre certain du r�sultat.

    Pas le droit de faire �a ? Je passe � c�t� de quelque chose ?
    Merci.

  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,
    ben non , le probl�me vient de biblioth�que de runtime (CRT) .
    si tu es en mode dll partag�e �a ne peut fonctionner puisque tu auras une partie en debug et une autre en release.
    en statique (/MT) �a devrait etre mieux, mais bon il est pr�f�rable d'accorder les modes d'utilisations (debug avec debug etc)...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    57
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 57
    Par d�faut
    Citation Envoy� par farscape Voir le message
    si tu es en mode dll partag�e �a ne peut fonctionner puisque tu auras une partie en debug et une autre en release.
    en statique (/MT) �a devrait etre mieux, mais bon il est pr�f�rable d'accorder les modes d'utilisations (debug avec debug etc)...
    Je vais tenter d'exploiter ta piste ... mais juste pour pr�ciser (en fait voir si j'ai compris) .. tu dis que j'utilise ma dll en mode dynamique et qu'il faudrait que je l'utilise en mode statique. C'est ca ?
    Dans ce cas on ne fait qu'une seule .lib je crois ... mais le malheur c'est pour que quelques dizaines de lignes de codes (mais qui utilisent des string, des iostream ....) je passe de 35Ko � 300 ou 400 Ko. En gros j'embarque la moiti� du compilateur avec moi

    Autrement un lien des plus int�rressants sur le sujet du code qui marche en debug et pas en release :
    http://www.codeproject.com/KB/debug/...eleasever.aspx

    @+++

  4. #4
    R�dacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par d�faut
    Citation Envoy� par squale69 Voir le message
    Bonjour,

    Si je compile la DLL en mode release, et que je l'utilise dans le projet qui reste en mode debug une partie du code seulement fonctionne (par exemple le constructeur de ma class, mais pas ma proc�dure).
    Normal...

    Car le code g�n�r� en mode debug et release n'est pas le m�me !

    Il ne faut surtout pas en C++ m�langer les modes � cause de new et delete dont l'impl�mentation (heap manager) ne sont pas les m�mes en debug et release
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer � la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour acc�der et manipuler des bases de donn�es Oracle

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    57
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 57
    Par d�faut
    J'ai mis la main sur le probl�me � force de regarder le code g�n�r� :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    __declspec(dllimport) void Gestion_parametres_globaux(
    const std::string& nom_fichier, T_Parametre* Parametres);
    ....
    ....
    T_Parametre* Parametres = new(T_Parametre);
    .....
    Gestion_parametres_globaux("Cible.conf", Parametres);
    Si je suis en debug, mon string est bien r�cup�r� et du coup tout fonctionne, mais si j'ai la DLL en mode release mon string devient n'importe quoi : le contenu devient "Hs5zCible.conf" avec une longueur en milliers de caract�res ... bref le bronx, je ne pointe plus sur la bonne sructure, et ce d�s l'entr�e dans la proc�dure. Par contre le pointeur Parametres est OK.

    Ca me d�passe, je n'arrive plus � comprendre si c'est parce que je m�lange du debug et du release, du code manag� avec du non-manag�, pour je ne sais trop quelles options de l'environnement de compil ou de link ...

    Vous ne voyez pas une astuce pour forcer l'empilement des param�tres de la m�me fa�on dans les 2 cas ?
    Au secours !!!

Discussions similaires

  1. R�ponses: 7
    Dernier message: 07/03/2009, 11h09
  2. Dll en mode debug et release
    Par babar63 dans le forum C++
    R�ponses: 12
    Dernier message: 18/02/2008, 20h27
  3. Savoir le mode : debug ou release
    Par BruceBoc dans le forum C++
    R�ponses: 8
    Dernier message: 24/04/2007, 00h09
  4. Difference Mode debug et release
    Par balabi dans le forum MFC
    R�ponses: 3
    Dernier message: 16/06/2005, 11h30
  5. chargement DLL mode debug/release
    Par bihorece dans le forum C++Builder
    R�ponses: 3
    Dernier message: 21/06/2004, 14h05

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