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 !