Ошибки 3.15
SlasherX
Россия, Магнитогорск
FR3 ver.3.15 std
Delphi 6 + upd2
После установки новой версии, при компиляции модулей вылетает следующая ошибка:
[Fatal Error] fs_isysrtti.pas(20): File not found: 'fs_iconst.dcu'
Интересно... тестированием кто-нибудь у вас занимается?
Delphi 6 + upd2
После установки новой версии, при компиляции модулей вылетает следующая ошибка:
[Fatal Error] fs_isysrtti.pas(20): File not found: 'fs_iconst.dcu'
Интересно... тестированием кто-нибудь у вас занимается?
Комментарии
Для Delphi 7 при компиляции frxFIB7.dpk ругается на отсутствие FIBPlus7
А он у вас присутсвует?
2. соответственно путь к нему прописан быть не может
3. Модулей - имелось ввиду программ, в которых используются компоненты FR3
еще хотелось бы заметить что перекомпиляция самих пакетов FR3 (для смены языка) через прилагаемую утилитку ошибок не вызывает.
с предыдущими версиями FR3 таких проблем никогда не возникало.
Удаляешь старую, ставишь новую, и всё без проблем компилится.
у меня стандарт для D6 багует... соответственно исходников у меня нет.
2. Если поменяли структуру хранения ресурсов, то почему не обновили соответствующую утилиту? Я привык пользоваться ей и тут внезапно - не пользуйтесь... делайте всё ручками. Это называется "безболезненный переход с версии на версию" по фастрепортовски... Видимо время программистов никак уже не ценится... придётся пока пользоваться 3.14.
3. Баг, так и оставшийся в FR3.15 (D6+Upd2)
- Открываем дизайнер отчётов (двойной щелчок мыши на TfrxReport)
- Загружаем форму отчёта
- Тыкаем мышкой на листе
- Нажимаем Shift и держим
- тыкаем мышкой на мемке (выделяем её)
- Отпускаем Shift
- Нажимаем Delete
- Наблюдаем Access Violation
Установился без ошибок.
Создаем пустой проект, кладем на форму TfrxReport, компилируем.
Получаем кучу ошибок в frxClass.hpp:
...
[C++ Error] frxClass.hpp(1628): E2076 Overloadable operator expected
[C++ Error] frxClass.hpp(1628): E2040 Declaration terminated incorrectly
[C++ Error] frxClass.hpp(1630): E2040 Declaration terminated incorrectly
[C++ Error] frxClass.hpp(1630): E2190 Unexpected }
[C++ Error] frxClass.hpp(1634): E2303 Type name expected
[C++ Error] frxClass.hpp(1635): E2139 Declaration missing ;
[C++ Error] frxClass.hpp(1638): E2303 Type name expected
[C++ Error] frxClass.hpp(1638): E2139 Declaration missing ;
[C++ Error] frxClass.hpp(1640): E2293 ) expected
[C++ Error] frxClass.hpp(1643): E2092 Storage class 'virtual' is not allowed here
[C++ Error] frxClass.hpp(1653): E2289 __published or __automated sections only supported for VCL classes
[C++ Error] frxClass.hpp(1654): E2238 Multiple declaration for 'TfrxSubreport::TfrxReportPage'
[C++ Error] frxClass.hpp(1638): E2344 Earlier declaration of 'TfrxSubreport::TfrxReportPage'
[C++ Error] frxClass.hpp(1654): E2303 Type name expected
[C++ Error] frxClass.hpp(1654): E2139 Declaration missing ;
[C++ Error] frxClass.hpp(1659): E2092 Storage class 'virtual' is not allowed here
[C++ Error] frxClass.hpp(1655): E2242 default requires VCL style class type
[C++ Error] frxClass.hpp(1648): E2242 __classid requires VCL style class type
[C++ Error] frxClass.hpp(1649): E2378 Return statement missing ;
[C++ Error] frxClass.hpp(1659): E2312 'TfrxSubreport::TfrxView' is not an unambiguous base class of 'TfrxSubreport'
[C++ Error] frxClass.hpp(1692): E2303 Type name expected
[C++ Error] frxClass.hpp(1693): E2139 Declaration missing ;
[C++ Error] frxClass.hpp(1724): E2092 Storage class 'virtual' is not allowed here
[C++ Error] frxClass.hpp(1745): E2289 __published or __automated sections only supported for VCL classes
[C++ Error] frxClass.hpp(1746): E2303 Type name expected
[C++ Error] frxClass.hpp(1746): E2228 Too many error or warning messages
...
строка 1628:
operator IfrxReportPage*(void) { return (IfrxReportPage*)&__IfrxReportPage; }
Почему?
Пробывал даже в ручном режиме, раскомпилировав строчку для данной версии. Результат остался прежним.
D7+up1+fr3.15 Basic
[Fatal Error] Unit1.pas(7): File not found: 'fs_iconst.dcu'
Буду признателен наставлениям. С уважением, Илья.
Необходимо руками поместить определение интерфейса:
__interface IfrxReportPage;
typedef System::DelphiInterface<IfrxReportPage> _di_IfrxReportPage;
__interface INTERFACE_UUID("{10029A3D-D7CB-449A-90E7-3FA255F50E39}")
IfrxReportPage : public IUnknown
{
ПЕРЕД определением класса, в котором он используется:
class PASCALIMPLEMENTATION TfrxReportPage : public TfrxPage
{
В файле, сгенерированном компилятором, определение КЛАССА в строке 1443,
определение ИНТЕРФЕЙСА в строке 2388.
В файле frxClass.pas, как легко догадаться, все в правильном порядке.
Это у меня одного глючный компилятор - у разработчиков другой, или они
перед выпуском проекты в С++ Builder не проверяют?
ИМНО, потому что ПАКЕТ собирает компилятор ПАСКАЛЯ который идет с Builder, ведь там *.pas файлы. Он же и генерирует *.hpp файлы. А вот эти файлы потом обрабатывает уже компилятор C++, здесь и траблы...
Ну то, что не используют - понятно. И ладно, так уж сложилось. Но вот отсутствие внятных примеров на C++, допустим для разработки дополнительных компонент для FR не есть хорошо. И в документации все примеры на паскале... А ведь там есть грабли далеко не очевидные, и код один-в-один не всегда переводится.
А что касается этого ляпа, так ведь достаточно было попробовать собрать тестовый проект, раз уж заявлена поддержка BCB.
В общем, как программер программера я разработчиков понимаю , а вот как потребитель производителя не всегда...
И в апдейте FR он не исправлен...