Génération de DLL
Dernière réponse : dans Programmation
Est-ce que quelqu'un peut m'expliquer pourquoi, si je génère 2 fois la même DLL, j'obtiens des différences?
Je m'explique: j'ai un code C++, je compile et ilnk, j'obtiens une DLL. Puis je ne CHANGE RIEN au code, et je recompile pour re-générer la DLL. Les 2 DLL ont la même taille, mais il y a toujours 2 ou 3 octets qui diffèrent.
Pourquoi cela?
Y a-t-il moyen de l'éviter et d'avoir toujours EXACTEMENT la même DLL générée?
Merci de votre aide,
Eric
Je m'explique: j'ai un code C++, je compile et ilnk, j'obtiens une DLL. Puis je ne CHANGE RIEN au code, et je recompile pour re-générer la DLL. Les 2 DLL ont la même taille, mais il y a toujours 2 ou 3 octets qui diffèrent.
Pourquoi cela?
Y a-t-il moyen de l'éviter et d'avoir toujours EXACTEMENT la même DLL générée?
Merci de votre aide,
Eric
Autres pages sur : generation dll
Lassé par la pub ? Créez un compte
Désolé... Effectivement, j'aurais pu être plus précis.
J'uilise Microsoft Visual Studio 2003. Difficile de te donner toutes les options de compilation tellement il y en a, mais en gros je compile en mode "Release" sans aucune information de debug. A toute fin utile, je peux donner la ligne de commande:
/OUT:"c:/MonRepertoire/MaDLL.dll" /INCREMENTAL:NO /NOLOGO /DLL /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /IMPLIB:"Release/MaDLL.lib" /MACHINE:X86 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
Effectivement, j'utilise un éditeur hexa pour voir les différences.
En fait, je pense que MSVC fait ça pour que toute DLL générée soit unique, mais j'aimerais bien désactiver cela, si c'est possible.
Merci !!
Eric
J'uilise Microsoft Visual Studio 2003. Difficile de te donner toutes les options de compilation tellement il y en a, mais en gros je compile en mode "Release" sans aucune information de debug. A toute fin utile, je peux donner la ligne de commande:
/OUT:"c:/MonRepertoire/MaDLL.dll" /INCREMENTAL:NO /NOLOGO /DLL /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /IMPLIB:"Release/MaDLL.lib" /MACHINE:X86 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
Effectivement, j'utilise un éditeur hexa pour voir les différences.
En fait, je pense que MSVC fait ça pour que toute DLL générée soit unique, mais j'aimerais bien désactiver cela, si c'est possible.
Merci !!
Eric
Citation :
c'est moi qui l'ai écrit
Les environnements de dév. comme Visual Studio ajoutent pas mal de lignes que l'auteur du code ne maîtrise pas forcément. Il faut que tu vérifies tous les fichiers, autant les tiens que ceux ajoutés par VS.Tente ceci :
Enjoy!
Tout d'abord, je précise que je maitrise TOUT le code. Ce n'est pas une DLL qui utilise les MFC ou autre, c'est une DLL pour Flight Simulator, petite et où aucun code n'est généré automatiquement par MSVC.
Ceci dit, tu as eu une bonne idée. J'ai fait 2 génération de la même DLL, puis j'ai comparé les 2 répertoire "Release" qui en résultent. Dans tous les .obj générés, il y a quelques différences, ainsi que dans le fichier .lib généré. Intéressant, mais ça ne m'aide pas plus...
Eric
Ceci dit, tu as eu une bonne idée. J'ai fait 2 génération de la même DLL, puis j'ai comparé les 2 répertoire "Release" qui en résultent. Dans tous les .obj générés, il y a quelques différences, ainsi que dans le fichier .lib généré. Intéressant, mais ça ne m'aide pas plus...
Eric
Pourquoi? Tout simplement car c'était là, dans les options par défaut dans les "default libs", et que je n'y ai pas touché. J'ai ré-essayé de l'enlever en mettant uuid.lib dans "Ignore Specific Library", mais ça ne change rien...
En fait, je me trompe peut-être, car il est possible que la lib uuid.lib ne soit pas réellement ignorée. Je ne sais pas comment enlever toutes ces libs de la ligne de commande. Même en positionnant l'option "Ignore Default Libraries", elles y sont toujours...
Eric
En fait, je me trompe peut-être, car il est possible que la lib uuid.lib ne soit pas réellement ignorée. Je ne sais pas comment enlever toutes ces libs de la ligne de commande. Même en positionnant l'option "Ignore Default Libraries", elles y sont toujours...
Eric
Lassé par la pub ? Créez un compte
![[:thony] [:thony]](http://m.bestofmedia.com/sfp/design/usr/fr/smilies/89/c6/thony.gif)