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

И как теперь с этим бороться ?
Вроде я никакого криминала не допустил !
Может кто что подскажет ?! А то вот-вот сдача...
Re: error C2663
От: ekamaloff Великобритания  
Дата: 06.12.05 10:20
Оценка:
Здравствуйте, Deonisy, Вы писали:

Как объявлены lpVidelList и AddTail?
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[2]: error C2663
От: Deonisy Россия  
Дата: 06.12.05 10:29
Оценка:
CList* lpVidelList;

а AddTail() — MFC-шный метод класса CList()
Re[3]: error C2663
От: ekamaloff Великобритания  
Дата: 06.12.05 10:52
Оценка: 3 (1)
Здравствуйте, Deonisy, Вы писали:

D>CList* lpVidelList;


CList — вроде шаблонный класс, как вы умудрились так объявить переменную?

Вообще наиболее вероятная причина: вы пытаетесь вызвать метод на const объекте.
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[4]: error C2663
От: Deonisy Россия  
Дата: 06.12.05 11:03
Оценка:
Ёлки-палки ! Точно ! Вместо CList треба писать CList<structVidelData*, structVidelData*> !!!

Большое человеческое СПАСИБО !!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.