error C2663
От: Deonisy Россия  
Дата: 06.12.05 10:15
Оценка:
Всем привет !
Я тут каким-то образом умудрился компилятор поставить в неловкое положение... Кхм Ну и он в долгу не остался.
Идея такая — есть дерево. В узлах дерева элементы — структуры 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

И как теперь с этим бороться ?
Вроде я никакого криминала не допустил !
Может кто что подскажет ?! А то вот-вот сдача...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.