关于对CArray的元素进行排序的有关问题

关于对CArray的元素进行排序的问题
本帖最后由 haohello 于 2012-12-19 10:49:51 编辑

typedef struct tagImgFile
{
char dir[MAX_PATH];
tagImgFile(const char * _dir)
{
memset(dir,0,sizeof(dir));
strcpy(dir,_dir);
}
}ImgFile;

CArray <ImgFile*,ImgFile*> ImgFileArray;


用qsort对ImgFileArray中的元素按dir进行排序,
怎么写那个compare函数??
下面的方式不对呀。


int cmp(const ImgFile ** arg1,const ImgFile ** arg2)
{
return strcmp( (*arg1)->dir, (*arg2)->dir);
}


qsort(
    (void*)&ImgFileArray,
    ImgFileArray.GetSize(),
    sizeof(ImgFile*), 
    (int(*)(const void*,const void*))cmp );



------解决方案--------------------
qsort(
    ImgFileArray.GetData(),
    ImgFileArray.GetSize(),
    sizeof(ImgFile*), 
    (int(*)(const void*,const void*))cmp );