Posted By: pivson (Pijte pivo, je zdrave !) on 'CZprogram'
Title:     Re: Prekreslovani (was: MS v D4)
Date:      Wed Sep 29 19:11:20 1999

> 
> Omlouvam se, v InvalidateRect staci predat NULL ... a co se tyce debugu - 
> pokud si budu predavat zpravy do jinyho procesu, tak uz to trochu presahuje 
> ramec toho co sem - tj. kratoucka aplikace jejiz vytvoreni zabere par minut 
> ... Jinak pak uz je lepsi pouzit TRACE, ale to je vice mene cast MFC, takze 
> pro ty, co nemate radi MFC je lepsi napsat si vlastni interprocess
> komunikaci 
> ;)
>  
> 
>           Jerry III
> 
> I kdybych vedel ze za pet minut zanikne svet, jeste bych si sel zkontrolovat
> 
> e-mail
> 
> http://jerryiii.home.sprynet.com/mica/index.htm
Nehctel sem, ale uz je to tu :) MFC :) tak dasi mas debug W, JErry ;) TRACE je 
nanic, protoze kdyz padne alikace, stahne sebout debuger, a jak si pak 
prectes co se stalo ? he ? MFC.PolibMi se akorat nastavi na true : A ani se 
neskrnes ;) [nevim jak tobe, ale me se pomerne dost stane ze padne debuger 
trde na podlahu, pokavad sem v 9x tak i s tim dosem)... Nekamenujte me za 
silenej zrojak, napsal sem si to pred 3 rokama a od tyu doby sem na to 
nesach..


#ifndef DEBUGW_H
#define DEBUGW_H

void __stdcall DebugWAddString(char* mfile,int mline,char* mdate,char* 
format,...) {


  static COPYDATASTRUCT cds;
  static HWND           dest=NULL;
  static TCHAR*         d;
  static TCHAR          msgbuf[512];
  static TCHAR          msgbuf2[512];
  static int            x;
  static TCHAR          out[512];

  va_list               arglist;

  if (!dest) {

    dest=FindWindow("Ray's message debuging class",NULL);
    if (!dest)
      return;
  }

  va_start( arglist, format );
  vsprintf(msgbuf, format, arglist );
  va_end( arglist );
  if (msgbuf[strlen(msgbuf)-1]=='n') msgbuf[strlen(msgbuf)-1]=0;
  while (NULL!=(d=strchr(msgbuf,'n'))) {
     memcpy(msgbuf2,msgbuf,d-msgbuf);
     msgbuf2[d-msgbuf]=0;

     sprintf(out,"%s|%s|%c|%s",msgbuf2,mfile,mline,mdate);
     rZEROSTRUCT(cds);
     cds.dwData=0;
     cds.cbData=strlen(out)+1;
     cds.lpData=out;
     FORWARD_WM_COPYDATA(dest,NULL,&cds,SendMessage);

     _tcscpy(msgbuf,d+1);
  }

  sprintf(out,"%s|%s|%d|%s",msgbuf,mfile,mline,mdate);
  rZEROSTRUCT(cds);
  cds.dwData=0;
  cds.cbData=strlen(out)+1;
  cds.lpData=out;
  FORWARD_WM_COPYDATA(dest,NULL,&cds,SendMessage);

}

#endif

Aby ste se nelekly, patri sem makro:

#ifdef _DEBUG
  #define DPRINT DebugWAddString(__FILE__,__LINE__,__TIMESTAMP__,
  #define _ASSERTRET(expr) _ASSERTE(expr)
#else
  #define DPRINT /##/
  #define _ASSERTRET(expr) (void)expr
#endif
#define IPRINT DebugWAddString(__FILE__,__LINE__,__TIMESTAMP__,

void __stdcall DebugWAddString(char* file,int line,char* time,char* 
format,...);


No a nakonec example :)

DPRINT "bleble, je tu %d piv",DemeNaPivo);

zpusoby vypis (DebugW ma vis spoupcu, co radek, to sloupec):

(ten text, uz sem to zapomel a nic nevidim :)
456 [top je jako radka]
\SudPivoGambac.cpp [to jako file]
1.1.2000 [to jako datum]...

S pulitrem
 
Pivson I a posledni, z bozi vule pivar

http://pulse.mute.cz   http://it3.mute.cz

A co budou delat cesi ???
                               Deme na pivo !

Search the boards