[VC++] Utiliser TRACE dans un programme Win32

Utiliser TRACE dans un programme Win32 [VC++] - C++ - Programmation

Marsh Posté le 06-01-2005 à 08:36:16    

Salut,
 
Tout est dans le titre.
 
Dans mon programme Win32 fait sous Visual C++, je voudrais utiliser les fonctionnalités de TRACE.
 
Donc, pour cela, je fais un #include <Afxwin.h>
 
Le programme compile et marche. Cependant, mon TRACE ne marche pas correctement, a savoir que rien n'apparait dans ma fenetre de Debug, jusqu'au moment ou je lance un autre programme MFC utilisant TRACE, et la, toutes les TRACE que j'avais utilisées dans mon prog Win32 auparavant apparaissent d'un coup... (donc, un comportement totalement asynchrone)
 
Je tiens a préciser également que j'utilise un /MTd comme directive de compilation, car sinon, il me fait un :
 
error LNK2001: unresolved external symbol __endthreadex
error LNK2001: unresolved external symbol __beginthreadex
 
Des idées?
 

Reply

Marsh Posté le 06-01-2005 à 08:36:16   

Reply

Marsh Posté le 06-01-2005 à 08:54:45    

afxTraceEnabled ?

Reply

Marsh Posté le 06-01-2005 à 09:45:41    

T'utilises une fonction MFC dans un programme qui ne l'est pas ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 06-01-2005 à 11:43:42    

HelloWorld a écrit :

T'utilises une fonction MFC dans un programme qui ne l'est pas ?


 
Oui, en gros, j'utilise une fonction MFC dans un programme qui ne l'est pas :D  
 
Mias bon, certains composants MFC marchent ainsi (genre les CString), et le TRACE marche "presque". Comment faire pour profiter de cette fonctionnalité sans utiliser un programme MFC?
 
(Pour info, AfxTraceEnabled est bien TRUE)

Reply

Marsh Posté le 06-01-2005 à 14:17:49    

Faudrait étudier le code, mais si celui-ci repose sur la message pump interne des MFC, ben...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 06-01-2005 à 16:15:19    

OutputDebugString("Error str" );
 
tu peux eventuellement faire ca pour taper + vite ;)
#define TRACE(x) OutputDebugString(x);


Message édité par Rits75 le 06-01-2005 à 16:17:54
Reply

Marsh Posté le 07-01-2005 à 09:05:51    

Alors, pour info (pour tous ceux qui ont tenté de m'aider):
 
-Tout marche désormais tres bien. En fait, le TRACE lui meme marchait bien, mais a force de tests, etc (y compris avec les outputDebugString), j'ai remarqué que le probleme venait de...moi: Dans mon TRACE de test, j'oubliais de revenir a la ligne ("\n" ) et donc, le tout ne saffichait quau premier TRACE avec retour a la ligne, dou cette impression d'asynchronisme. (et en plus, jétais convaincu que ca venait de probleme de threads, car le seul moyen de faire marcher mon #include <afxwin.h> était de mettre /MTd a la place de /MLd comme directive de compilation, car sinon, y a des problemes avec endthreadx, beginthreadx, etc...
-TRACE n'utilise pas du tout le MessagePump ou les CWinThread des MFC, donc, ca ne pose aucun probleme de l'appeler depuis un prog Win32.  
-Je prefere largement utiliser TRACE plutot que OutputDebugString, car TRACE permet de spécifier a la volée des arguments optionnels (du genre entiers) sans avoir a passer par une Strin intermédiaires. Un TRACE, c'est un peu comme un Printf, alors qu'un OutputDebugString, c'est un peu comme un MessageBox...
 
Voila,
 
Merci a vous.
 
:hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed