Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2690 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [c++] DLL fichier de logs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c++] DLL fichier de logs

n°1259367
philzzz
Posté le 05-12-2005 à 17:31:29  profilanswer
 

bonjour!
 
j'ai un exe qui appelle des DLLs et je voudrais que ces DLL et l'exe logguent des trucs dans un fichier, mais je ne sais pas trop quelle est la bonne methode pour faire ça...
 
je pense que si l'exe a en charge la gestion du fichier de log et qu'ensuite si je pouvais passer le pointeur vers mon instance de ma classe de log a mes DLL ça pourrait être pas mal non?  
 
merci

mood
Publicité
Posté le 05-12-2005 à 17:31:29  profilanswer
 

n°1259442
philzzz
Posté le 05-12-2005 à 19:28:28  profilanswer
 

pour l'instant j'ai juste mis un "CLog toto" global et un "CLog* pToto = &toto". dans mon fichier main .
 
et j'ai fait un "extern CLog *pToto" dans ma dll.  
là j'ai des erreurs de linkage en recompilant ma dll:
 
unresolved external symbol "public: __thiscall CLog::CLog(void)
pareil pour le destructeur "
 
qu'est ce qui ne va pas la dedans? Je ne comprends pas:/

n°1259888
blackgodde​ss
vive le troll !
Posté le 06-12-2005 à 11:34:26  profilanswer
 

ton exe n'exporte pas les méthodes de CLog, et elles doivent etre déclarées mais pas définies dans la dll.
 
Fonctionne peut-etre par interface ? (une classe avec des méthodes virtuelles pures)


---------------
-( BlackGoddess )-
n°1259936
philzzz
Posté le 06-12-2005 à 12:55:58  profilanswer
 

j'ai fait un include de mon log.h dans le main de ma dll... donc a priori il ya les déclarations, mais il a besoin de l'implementation du constructeur et du destructeur, et là je ne comprend pas pourquoi...

n°1259937
blackgodde​ss
vive le troll !
Posté le 06-12-2005 à 12:59:30  profilanswer
 

tu n'as pas de déréférenciation et de copies de toto dans ta dll ?


---------------
-( BlackGoddess )-
n°1259987
philzzz
Posté le 06-12-2005 à 13:54:46  profilanswer
 

c'est quoi une déréférenciation?
 
ya juste ça...
 
voila ma dll qui me renvoie une erreur de link sur le constructeur et le destructeur de ma classe de log:
 
maDLLMain.obj : error LNK2001: unresolved external symbol "public: __thiscall CLogFile::CLogFile(void)" (??0CLogFile@@QAE@XZ)
maDLLMain.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall CLogFile::~CLogFile(void)" (??1CLogFile@@UAE@XZ)
Debug/maDLL.dll : fatal error LNK1120: 2 unresolved externals
 
fichier maDLLMain.cpp

Code :
  1. #include "stdafx.h"
  2. #include "..\common\Logfile.h"
  3. extern CLogFile *g_pLogFile;
  4. BOOL APIENTRY DllMain( HANDLE hModule,
  5.                        DWORD  ul_reason_for_call,
  6.                        LPVOID lpReserved
  7.      )
  8. {
  9.     switch (ul_reason_for_call)
  10. {
  11.  case DLL_PROCESS_ATTACH:
  12.  case DLL_THREAD_ATTACH:
  13.  case DLL_THREAD_DETACH:
  14.  case DLL_PROCESS_DETACH:
  15.   break;
  16.     }
  17.     return TRUE;
  18. }


 
et mon exe qui compile bien:

Code :
  1. #include "stdafx.h"
  2. #include "..\..\common\LogFile.h"
  3. CLogFile g_LogFile;
  4. CLogFile *g_pLogFile = &g_LogFile;
  5. #define LOG(x,y)  g_LogFile.WriteLog(x,y)
  6. int APIENTRY WinMain(HINSTANCE hInstance,
  7.                      HINSTANCE hPrevInstance,
  8.                      LPSTR     lpCmdLine,
  9.                      int       nCmdShow)
  10. {
  11. g_LogFile.OpenLogFile("Log.txt" );
  12. ...

 
 
Je compile le tout avec Visual 6,
 

n°1260112
blackgodde​ss
vive le troll !
Posté le 06-12-2005 à 15:06:45  profilanswer
 

je comprends pas trop pourquoi il a besoin du constructeur et du destructeur, il les veut peut-etre d'office des que tu fais référeces a une classe.
sinon, je comprends pas trop non plus pourquoi tu n'as pas une erreur de symbole non résolu sur g_pLogFile dans la dll


---------------
-( BlackGoddess )-
n°1260207
philzzz
Posté le 06-12-2005 à 16:10:51  profilanswer
 

autant pour moi ! J'ai viré des includes pour pas trop charger mon post sur le forum et j'ai viré les includes  du "main" de mon exe ! dans ce .h il yavait la definition des macros et aussi de la variable g_LogFile -->ERRREUUURRREE !
 
du coups c'est pour ça qu'il voulait le le constructeur et le destructeur :pt1cable:  J'ai juste viré l'include et ca marche! J'ai du mal ! désolé.   :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [c++] DLL fichier de logs

 

Sujets relatifs
lire et écrire à partir d'un fichierRécupérer les infos d'un fichier txt en batch
fichier HEXLecture d'un fichier texte en boucle C++
Locker un fichierEcrire un fichier texte sur un serveur distant
Comment acceder un fichier en CStructure binaire d'un fichier JPEG
Compter le nombre de ligne dans un fichier texte sous WindowsRESOLU coller des formules ss lien de fichier
Plus de sujets relatifs à : [c++] DLL fichier de logs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR