Форум: "Прочее";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
ВнизСовместимость D6 & D7 Найти похожие ветки
← →
DimonS © (2006-11-02 15:16) [0]Доброго времени суток всем.
Есть такой вопросик, вернее проблемка.
Года два стояла у меня D6, русская версия. Решил поставить D7. Поставил, подключил все библиотеки, что были у меня, все заработало, проекты открываются и компилируются на ура. Кроме одного.
Есть у меня программка, работающая через ADO с Access-овской базой + база MS SQL.
БЕЗ ВСЯКОГО изменения, после компиляции в D7 она возросла: вместо 2,27 Мб (в ней ок. 20 форм, хотя они и создаются в реалтайме) она стала 2,38, причем абсолютно ничего не добавлял и не изменял.
НО! Самый прикол в том, что на моем компе, с устаносленной Дельфёй она запускается отлично, на других выдает табличку "Программа выполнила недопустимую операцию и будет закрыта". Опробывал на W-2000 и W-XP. Результат один.
ЗЫ. Ошибка происходит где-то до процедуры создания формы. Где - неизвестно, несколько тысяч процессов отлавливать F8 как-то не прельщает. Может кто сталкивался с такой проблемой, подскажите?
ЗЫЗЫ. Другие проекты с ADO после компиляции работают нормально.
← →
DVM © (2006-11-02 15:59) [1]
> вместо 2,27 Мб
> она стала 2,38
Это конечно очень, очень плохо при современных маленьких 500 Гбайтных винчестерах.
> несколько тысяч процессов отлавливать F8
Что еще за тысячи процессов?
← →
Desdechado © (2006-11-02 15:59) [2]Размер вырос - это нормально. Ведь классы и библиотеки дорабатываются от версии к версии.
А по поводу ошибки - скомпилируйся с отладочными версиями компонентов. Поставь бряк-пойнт на первой же команде в DPR и запускай. Дальше тебе отладчик при ошибке вывернет место.
← →
DimonS © (2006-11-02 16:06) [3]
> Desdechado © (02.11.06 15:59) [2]
> А по поводу ошибки - скомпилируйся с отладочными версиями
> компонентов.
Извини, это как? Что за отладочные версии компонентов?
Дело в том, что пробовал установить D7 на другую машину. Тоже ошибок нет, запускается программка отлично. Но где Delphi не установлено - ошибка, и как ее отловить не знаю.
← →
Anatoly Podgoretsky © (2006-11-02 16:23) [4]> D6, русская версия
Такого Борланд не производил
← →
Desdechado © (2006-11-02 16:24) [5]> Что за отладочные версии компонентов?
В настройках use debug dcu"s
> где Delphi не установлено - ошибка, и как ее отловить не знаю.
Значит, используешь какие-то компоненты, которые идут в отдельных DLL\BPL. Таскай их с собой.
← →
DimonS © (2006-11-02 16:31) [6]> Anatoly Podgoretsky © (02.11.06 16:23) [4]
> > D6, русская версия
>
> Такого Борланд не производил
Действительно, попалась сразу русифицированная, каюсь.
> Значит, используешь какие-то компоненты, которые идут в
> отдельных DLL\BPL. Таскай их с собой.
Брррр... Можно поподробнее? Все БИБЛИОТЕКИ, перечисляю: EhLib, FastReport, RxLib. В D6 с ними проблем небыло ни разу. В D7 настроил их точно так же по мануалу. И как их таскать с собой я не представляю.
← →
Desdechado © (2006-11-02 16:44) [7]Ну, например, TClientDataset требует midas.dll или uses midaslib.
uses ShareMem требует borlndmm.dll
и т.п.
← →
DimonS © (2006-11-02 16:50) [8]
> Desdechado © (02.11.06 16:44) [7]
> Ну, например, TClientDataset требует midas.dll или uses
> midaslib.
> uses ShareMem требует borlndmm.dll
> и т.п.
Это зависит от того, Делфи 6 или Делфи 7 стоять будут?
← →
DimonS © (2006-11-02 17:03) [9]ТО Moderator
А все-таки совместимость разных версий относится к ПРОЧИМ проблемам? Я так думал, что это вроде кк общая. По существу, у меня именно как не работают программы, скомпилированные на Делфи 7, в то время как на Делфи 6 они перекопилированные работают на ура.
← →
DimonS © (2006-11-03 01:56) [10]Ну что, никто с такой проблемой не сталкивался, я первый? :)
← →
ЮЮ © (2006-11-03 09:29) [11]
> проекты открываются и компилируются на ура
Не верю. Должно было появится куча warning-ов. Или ты на такую "мелочь" внимания не обращаешь?
З.Ы. ADO-приложения с MS SQL, скомпилированные D7(D6) без проблем запускаются на других компьютерах. Может БДЕ-шные модули прихватил где в Uses. Попробуй поставить D на проблемнов комп-е без БДЕ
← →
DimonS © (2006-11-03 14:36) [12]
> Не верю. Должно было появится куча warning-ов.
Хм... Нету, в том то и дело.
> Может БДЕ-шные модули прихватил где в Uses
Не использовал ни разу в этой программе БДЕ. В других было дело, но запустились после компиляции нормально на всех компах.
Да. Еще такое уточнение. При запуске программы сначала появляется заставка, а после уже сама главная форма. Может из-за этого быть такие проблемы? Просто небыло времени сегодня проверить это...
← →
Сергей М. © (2006-11-03 14:52) [13]Ты не ответил про "несколько тысяч процессов".
Судя по терминологии - дилетантство откровенное.
Вряд ли ты справишься с проблемой при этом)
← →
DimonS © (2006-11-03 15:00) [14]
> Сергей М. © (03.11.06 14:52) [13]
> Ты не ответил про "несколько тысяч процессов".
Не так выразился, наверное. На своем компе нечего отлавливать - и так нормально запускается программа, так что F8 не поможет никак. На других с установленной Д7 тоже. Но на тех, где нет Д7 выдает ошибку. КАК ее отловить на другом компе - подскажите, не силен в таких вопросах.
← →
Сергей М. © (2006-11-03 15:05) [15]
> КАК ее отловить на другом компе
Для начала проанализировать зависимости исп.модуля от bpl/dll
← →
DimonS © (2006-11-03 15:55) [16]
> Сергей М. © (03.11.06 15:05) [15]
>
> > КАК ее отловить на другом компе
>
>
> Для начала проанализировать зависимости исп.модуля от bpl/dll
Тупой я. Каюсь. КАК именно найти ошибку? Можно сразу подсказать?
Просто сейчас использовать Д6 и Д7 одновременно приходится...
← →
Сергей М. © (2006-11-03 15:58) [17]tdump.exe
← →
Vga © (2006-11-03 16:05) [18]> [16] DimonS © (03.11.06 15:55)
Любым менеджером процессов, который показывает загруженные прогой dll-ки. Например, SysInternals Process Explorer. В нем смотришь список dll, потом проверяешь чего не хватает на компе без Delphi. tdump вряд ли поможет, т.к. показывает только список импортов, а все dll из него в системе есть (иначе ругалась бы винда на отсутствие dll)
← →
atruhin © (2006-11-03 17:28) [19]Процентов 99, в программе скрываются исключения, и где то происходит ошибка,
которая маскируется.
← →
pasha_golub © (2006-11-03 17:43) [20]
> atruhin © (03.11.06 17:28) [19]
И такое может быть. Сам помнится прятал ошибки, пока не понял, какое это зло.
← →
atruhin © (2006-11-03 18:14) [21]> Сам помнится прятал ошибки
Тоже было дело. Не пустые, но невнятное (для разработчика) описание на блок кода.
Ошибку показывает, а откуда ноги растут не понятно :).
← →
Другой © (2006-11-03 18:51) [22]Ну а расставить хотя бы ShowMessage после каждой сторчки при загрузке не судьба..
← →
Vga © (2006-11-03 23:47) [23]Там же (в диалоге "программа выполнила невыполнимое") есть адрес ошибки. А в Delphi есть пункт Find Error, принимающий этот адрес и показывающий, где он находится, примерно как при ошибках при выполнении в дебаггере. Этот пункт меню активен только в режиме отладки (чтобы не возникало вопросов "а чего он такой серый"). Правда, с него станется выкинуть в CPU Window, если нужную строку не найдет.
← →
DimonS © (2006-11-04 00:48) [24]
> Ну а расставить хотя бы ShowMessage после каждой сторчки
> при загрузке не судьба..
В том то и дело, ставил. Но ошибка вываливается ДО Form.Create. Ну а при инициализации программы, когда до генерации формы происходит выполнение еще нескольких сотен-тысяч строк кода - действительно гиммор.
> Процентов 99, в программе скрываются исключения, и где то
> происходит ошибка,
> которая маскируется.
Может быть, если только в подключенных библиотеках. В программе исключения стараюсь не ставить.
> Любым менеджером процессов, который показывает загруженные
> прогой dll-ки. Например, SysInternals Process Explorer.
>
Эээ. Извиняюсь. Это стандартная прога или ее устанавливать нужно? Если второе, то где скатать можно?
← →
Vga © (2006-11-04 03:30) [25]SysInternals - фирма, так что естественно не стандартная.
Скачать можно на www.sysinternals.com, там же есть много и других полезных программ, типа RegMon, FileMon, etc.
← →
DimonS © (2006-11-05 15:24) [26]
> Там же (в диалоге "программа выполнила невыполнимое") есть
> адрес ошибки. А в Delphi есть пункт Find Error, принимающий
> этот адрес и показывающий, где он находится, примерно как
> при ошибках при выполнении в дебаггере.
А если операционки разные? Сомневаюсь, что и адреса будут одинаковые.
← →
Ketmar © (2006-11-05 15:34) [27]>[26] DimonS(c) 5-Nov-2006, 15:24
>А если операционки разные?
ну да. под linux другое будет. только там и Delphi нет, и PE не работают.
← →
Vga © (2006-11-05 19:58) [28]> [26] DimonS © (05.11.06 15:24)
Будут, будут. Думаю, даже Wine правильный адрес выдаст. Разве что адрес где-то в системных библиотеках типа kernel.
← →
sniknik © (2006-11-05 20:44) [29]> работающая через ADO
> ошибка вываливается ДО Form.Create.
закрой коннект в десигне, и открывай в рантайм гденибудь попозже со всеми нужными датасетами, в onShow например, или лучше вообще по кнопке. изменилось что нибудь?
если да, то смотри обработчики датасетов, обращения в них к тому что ещё не создано и т.д.
← →
antonn © (2006-11-05 21:08) [30]может где то надо убрать галочку "build with runtime packages"?
← →
DimonS © (2006-11-07 03:32) [31]
> закрой коннект в десигне, и открывай в рантайм гденибудь
> попозже со всеми нужными датасетами, в onShow например,
> или лучше вообще по кнопке. изменилось что нибудь?
Естественно, все делается в рантайме, на такие грабли я уже спотыкался как-то по началу. Так что это отсеивается...
← →
DimonS © (2006-11-09 05:07) [32]Вот что еще накопал.
Сразу не хватило ума глянуть в журнал ошибок.
Источник: DrWatson
Приложение вызвало ошибку Ошибка в 09/11/2006 @ 10:59:35.828 Вызвано исключение c0000025 по адресу 77FACC94 (RtlTraceDatabaseEnumerate)
Что это обозначает, расшифруйте, плз!
Поиск в хряндексе ничего не дал, в смысле встречается такая ошибка при работе с BDE. У меня БДЕ не используется. Кстати, как исправить ее не нашел.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.038 c