Форум — Ответы     (  К темам )
 ?  Сергей: пытаюсь перенести программу с Builder 5 на 6-й и получаю ошибки... (03-03-2003 17:41:11)
Привет.

Я попытался скомпилировать программу написанную на BCB5 на новой 6-й версии
(установленны на разных машинах)

Запускаю компиляцию, и получаю такие ошибки:
(строка с ошибкой)
(ошибка )

typedef void __fastcall (__closure *TLVDrawItemEvent)(TCustomListView* Sender, TListItem* Item, const Types::TRect &Rect, Windows::TOwnerDrawState State);
[C++ Error] ComCtrls.hpp(2638): E2015 Ambiguity between 'Windows' and 'Word_2k::Windows'

virtual void __fastcall DrawItem(TListItem* Item, const Types::TRect &Rect, Windows::TOwnerDrawState State);
[C++ Error] ComCtrls.hpp(2839): E2015 Ambiguity between 'Windows' and 'Word_2k::Windows'

virtual bool __fastcall MsgSetRange(int Flags,
Windows::PSystemTime SysTime) = 0 ;
[C++ Error] ComCtrls.hpp(4140): E2015 Ambiguity between 'Windows' and 'Word_2k::Windows'

virtual bool __fastcall MsgSetRange(int Flags, Windows::PSystemTime SysTime);
[C++ Error] ComCtrls.hpp(4259): E2015 Ambiguity between 'Windows' and 'Word_2k::Windows'

virtual bool __fastcall MsgSetRange(int Flags, Windows::PSystemTime SysTime);
[C++ Error] ComCtrls.hpp(4429): E2015 Ambiguity between 'Windows' and 'Word_2k::Windows'

virtual void __fastcall DrawItem(int Index, const Types::TRect &Rect, Windows::TOwnerDrawState State);
[C++ Error] CheckLst.hpp(67): E2015 Ambiguity between 'Windows' and 'Word_2k::Windows'

почитал help по этому поводу , но ни чего не понял.
что бы это значило ? И как это исправить, если вообще можно исправить.
Ошибки находятся в модулях которые не я писал, а добавились Билдером.
И я понятия не имею, че там написано.

Буду рад любой информации.
 Павел (03-03-2003 23:09:30)
Ambiguity — это неоднозначность, то есть есть несколько
функций или переменных с таким именем и компилятор требует от Вас точного указания,
какую из них использовать, из какого модуля, для этого
перед именем функции или переменной укажите конкретно
Windows:: или Word_2k::
 Андрей (04-03-2003 06:40:50)
Действительно, ситуация неоднозначности. Если не помог совет Павла, но вы не можете разобраться, тогда
typedef void __fastcall (__closure *TLVDrawItemEvent)(TCustomListView* Sender, TListItem* Item, const Types::TRect &Rect, Windows::TOwnerDrawState State);

изложите как
typedef void __fastcall (__closure *TLVDrawItemEvent)(TCustomListView* Sender, TListItem* Item, const Types::TRect &Rect, Word_2k::TOwnerDrawState State);

или попробуйте заставить его выбрать "внаглую"

typedef void __fastcall (__closure *TLVDrawItemEvent)(TCustomListView* Sender, TListItem* Item, const Types::TRect &Rect, ::TOwnerDrawState State);

по выдаваемым сообщениям определиться будет несложно.