MFC dla VC 6.0
Szukam sposobu wykorzystania QSORT dla sortowania struktury.
Ale albo coś żle adresuje, albo czegoś nie kumam.
Już chciałem zlikwidować statica ale nie udaje się mi to.
Ale po kolei, kod:
Definicja, także struktury:
static int compare( const void *arg1, const void *arg2 );
struct record
{
char komentarz[256];
};
record *Moja_record;
int MojaProcka::compare( const void *arg1, const void *arg2 )
{
record *my1 = (record*) arg1;
record *my2 = (record*) arg2;
TRACE2 ("%s\n%s",my1->kategoria,my2->kategoria);
return strcmp(my1->kategoria,my2->kategoria);
}
bool MojaProcka::Sortuj()
{
Moja_record = (record *)malloc((unsigned long)500 * sizeof( record ));
qsort((void*)Moja_record,500,sizeof(record),
(int(*)(const void*, const void*))MojaProcka::compare);
free( (void *)Moja_record);
return (true);
}
No coś nie chodzi.
Brak sortowania.
Czy żle ustawiam adresowanie na wskażnikach?
Inna sprawa, żę TRACE nie wyświetla mi komunikatów w debugerze
(a może w staticu nie można używać Trace ?).
Chciałem dać MessageBox(), ale static mi na to nie pozwala.
Czy idzie dla "static int compare" zlikwidować static ?
Aby było tylko "int compare"
Proszę o ocenę tego wskażnika:
(int(*)(const void*, const void*))MojaProcka::compare);
Pomożecie [???]
OF: ciekawe czy admin wrzuci to do newbie?