Всем привет !
Я тут каким-то образом умудрился компилятор поставить в неловкое положение... Кхм Ну и он в долгу не остался.
Идея такая — есть дерево. В узлах дерева элементы — структуры structTreeNode. Всего два уровня иерархии.
Связь между уровнями через ссылку lpDownLevel. У листьев (элементов второго — последнего уровня) эта ссылка содержит адрес списка CList, в котором находятся данные, из-за которых вся эта чехорда и затеяна.
При компиляции кода:
// узел
struct structTreeNode
{
int iCode;
int iCount;
double fSquareSum;
double fSpareSum;
void *lpDownLevel;
};
void SomeFunction()
{
structTreeNode* lpCCKTree; // вершина дерева
// тут идет кое-что интересное
. . .
// а тут пытаемся добавить в список CList, который "висит" на самом элементе нижнем
// элементе - листе дерева, кое-какую ссылку
lpActiveNode = ((structTreeNode*)lpCCKTree[j].lpDownLevel);
lpVidelList = ((CList*)lpActiveNode[NextStreamData.iCondition].lpDownLevel);
lpVidelList->AddTail(&workStorage[i]);
}
После попытки компиляции всех этих чудес MS VC++ пишет:
error C2663: 'AddTail' : 2 overloads have no legal conversion for 'this' pointer
И как теперь с этим бороться ?
Вроде я никакого криминала не допустил !
Может кто что подскажет ?! А то вот-вот сдача...
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Ёлки-палки ! Точно ! Вместо CList треба писать CList<structVidelData*, structVidelData*> !!!
Большое человеческое СПАСИБО !!!