Текущий архив: 2006.09.24;
Скачать: CL | DM;
ВнизXP Manifest Найти похожие ветки
← →
Zarmi © (2006-09-03 01:09) [0]Здравствуйте друзья! Я пишу достаточно большую программу, несколько форм. До поры до времени все работало нормально, но после того как добавил XP manifest программа на некоторых операциях начала подвисать, причем иногда навсегда, а на несколько минут. Хотя бывает, что все ок. На разных компах проверял, везде по разному. Но суть в том, что программа должна работать на любом компьютере, а не только на моем. Если убрать XPMan, то все в порядке и летает. Не зависит XPMan или файл Имя_приложения.manifest.
Удалось примерно выяснить где происходят зависания, на границе между
Potok1:=potok.Create(false); и самим входом в процедуру Procedure potok.Execute; Причем могут быть разные потоки. Если идти последовательно отладчиком F7, то не разу не зависает! Проверял раз 50! Никаких таймеров нету.
Подскажите, что делать? В какую сторону копать. Красоту XP терять категорически не хочется!
PS: было мною замечено, что при добавлении манифеста визуальные операции над компонентами выполняются на несколько секунд дольше, но в данной проблеме никаких сложных операций, тем более над кучей компонентов не выполняется!
← →
Ketmar © (2006-09-03 01:12) [1]ищем в сторону багов в своём коде.
← →
Юрий Зотов © (2006-09-03 01:15) [2]Подвисание наблюдается только на компах с гипертрейдингом, или нет?
← →
Anatoly Podgoretsky © (2006-09-03 01:22) [3]XP manifest это всего лишь заявление для виндоус, он не имеет ни одного байта кода, программа вообще не изменяется.
← →
Ketmar © (2006-09-03 01:33) [4]> [3] Anatoly Podgoretsky © (03.09.06 01:22)
зато кардинально меняется способ отрисовки контролов.
← →
SerJaNT © (2006-09-03 02:03) [5]> зато кардинально меняется способ отрисовки контролов.
это уже Windows отрисосывает а не программа
← →
Furyz © (2006-09-03 10:34) [6]может стоит попробовать сторонние компоненты ????
winda может тоже иметь глюки , свои проги пишу без XpMANIFEST"a
← →
SerJaNT © (2006-09-03 10:47) [7]Как и было сказано выше, XPManifest никаким образом не может влиять на скорость работы программы и вызывать оишбки. Проблема в чем-то другом, а чем надо смотреть код. Код в студию!
← →
Ketmar © (2006-09-03 10:53) [8]> [5] SerJaNT © (03.09.06 02:03)
хоть шогготы -- способ отрисовки меняется.
← →
Ketmar © (2006-09-03 10:53) [9]> [7] SerJaNT © (03.09.06 10:47)
может. у меня, например, "скинованые" контролы рисуются медленней. %-)
← →
SerJaNT © (2006-09-03 10:59) [10]> способ отрисовки меняется.
и все же, Windows сама отрисовывает. Если я поставлю какой-нибудь навороченный и тяжелый скин для винды то возможно винда и будет тупить и как следствие программы, но внутри программы ничего же не меняется.
← →
SerJaNT © (2006-09-03 11:01) [11]> может. у меня, например, "скинованые" контролы рисуются
> медленней. %-)
Ну это другое. Тут уже дейтсвительно сама программа отрисовывает, а с XP Manifest программа "говорит" винде что отрисовывать надо в стиле XP (и то, только в том случае, если в винде выбран соответствующий стиль).
← →
Ketmar © (2006-09-03 11:18) [12]> [10] SerJaNT © (03.09.06 10:59)
но способ меняется. а кто именно отрисовывает -- совершенно не важно. важно, что работает другой код.
> [11] SerJaNT © (03.09.06 11:01)
я в состоянии понять различия между скинами, которые я делаю вручную и "темами" WinXP. также я в состоянии прочесть сабж. более того -- я знаю, зачем нужен хыр-манифест (удивительно, правда?). посему при минимальной внимательности можно понять, что слово "скинованые" я употребил по отношению к хыр-темам, а не самописным skin engines.
← →
Gero © (2006-09-03 12:18) [13]> [7] SerJaNT © (03.09.06 10:47)
Еще и как может. Ошибки могут содеражаться, например, в VCL, код которого может неадекватно работать с новыми контролами.
← →
Furyz © (2006-09-03 15:21) [14]я тут немного подумал:
Возможно конфликт возникает из-за НЕ стандартных контролов : URLlabel и т.д. какието там супер-мемо и супер-дбгриды , или например из-за движущийся картинки или анимированного гифа , или ты форму создаеш динамически
← →
Anatoly Podgoretsky © (2006-09-03 15:25) [15]Доказательством является, что рядом с уже скомпированой программой можно положить файл program.exe.manifest и программа сразу станет отображать виндоус компоненты по новому. Не требуется для этого бросать XPMan на форму.
← →
SerJaNT © (2006-09-03 15:28) [16]> Доказательством является, что рядом с уже скомпированой
> программой можно положить файл program.exe.manifest и программа
> сразу станет отображать виндоус компоненты по новому. Не
> требуется для этого бросать XPMan на форму.
При этом возможен ли такой вариант что программа станет тормозить, а то и вообще вылетать с ошибкой?
← →
Anatoly Podgoretsky © (2006-09-03 15:41) [17]В нашем мире все возможно.
← →
tesseract © (2006-09-03 15:56) [18]> [13] Gero © (03.09.06 12:18)
Такой прикол встречался не раз. Особенно если хватило дури использовать сторонние элементы управления.
> [4] Ketmar © (03.09.06 01:33)
Точнее используеться 6-я версия Comctrl.dll вместо 4. До D7 например VCL корректно отображались очень редко (личный опыт).
> [15] Anatoly Podgoretsky © (03.09.06 15:25)
Запускаеться ComCtrl.dll новой версии. Например, 1с, при таком файле, нормально не отображает половину форм.
← →
Anatoly Podgoretsky © (2006-09-03 15:59) [19]Так это проблема не Виндоус, в 1С
← →
tesseract © (2006-09-03 16:01) [20]> [19] Anatoly Podgoretsky © (03.09.06 15:59)
А где я обвиняю Windows ????
Я просто говорю что системная библиотека отличаеться и манифесты куда угодно бросать не рекомендуеться.
← →
Furyz © (2006-09-03 16:05) [21]мда... ситуация плохая...
> Я просто говорю что системная библиотека отличаеться и манифесты
> куда угодно бросать не рекомендуеться.
Универсальноть??зачем??
убери манифесты и поставь скины и все...зачем себя мучать???
← →
tesseract © (2006-09-03 16:07) [22]> Универсальноть??зачем??
> убери манифесты и поставь скины и все...зачем себя мучать?
> ??
УниверсальностьЮ, затем, что-бы работало!!!!!!!!!!!!!!!!!!.
У меня сфера деятельности манифестами и скинами вообще баловаться не позволяет :-)
← →
kaif © (2006-09-03 16:09) [23]В многопоточном приложении могут возникать ошибки при каких-то обстоятельствах, не имеющих отношения к сути ошибки и тем вводящие в заблуждение.
Попробуй поиграть с многопоточностью и синхронизациями.
← →
tesseract © (2006-09-03 16:17) [24]> [23] kaif © (03.09.06 16:09)
Верно, просто уже вьелась легендарная synchronize. Без него хоть с манифестами, хоть без, программа валиться будет.
← →
Furyz © (2006-09-03 16:17) [25]> У меня сфера деятельности манифестами и скинами вообще
> баловаться не позволяет :-)
интерсно что это за сфера?
← →
tesseract © (2006-09-03 16:19) [26]> [25] Furyz © (03.09.06 16:17)
Автоматизация.
← →
vrem (2006-09-03 16:21) [27][15] Anatoly Podgoretsky © (03.09.06 15:25)
Создал рядом со своей программой такой файл, теперь программа не запускается, пишет -
"Том для открытого файла был изменён извне, поэтому работа с этим файлом не возможна."
← →
tesseract © (2006-09-03 16:43) [28]> [27] vrem (03.09.06 16:21)
Файл надёюсь типа этого содержание имеет :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="random interesting information"
type="win32"
/>
<description>Sklad control program.</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
← →
vrem (2006-09-03 18:07) [29][28] tesseract © (03.09.06 16:43)
Пустой я думал, раз ни строчки кода..)
С таким работает.
← →
Furyz © (2006-09-03 20:24) [30]а вообще реально ли заменить
> name="Microsoft.Windows.Common-Controls"
библиотеки на чтонибудь не виндовое?
← →
Ketmar © (2006-09-03 20:26) [31]> [30] Furyz © (03.09.06 20:24)
запросто. возьми библиотеки от SPARC и замени. работать, правда, не будет. но заменить -- реально.
← →
Grom PE © (2006-09-03 21:14) [32]Манифест не оптимизирован! %) Минимальная его версия:
<?xml version="1.0"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0"><dependency><dependentAssembly><assemblyIdentity
type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
processorArchitecture="*" publicKeyToken="6595b64144ccf1df"/>
</dependentAssembly></dependency></assembly>
← →
Furyz © (2006-09-03 23:35) [33]> запросто. возьми библиотеки от SPARC и замени. работать,
> правда, не будет. но заменить -- реально.
и зачем оно тогда надо ?
По-приколу? :)))
← →
Gero © (2006-09-03 23:36) [34]> [32] Grom PE © (03.09.06 21:14)
И в чем проявляется оптимизированность?
← →
Ketmar © (2006-09-03 23:40) [35]> [33] Furyz © (03.09.06 23:35)
кто ж его знает, зачем. вопрос-то не я задавал.
← →
tesseract © (2006-09-04 08:18) [36]> [31] Ketmar © (03.09.06 20:26)
Винды под SPARC никогда не было.
Есть Mono-среда вроде, но манифест манифест тут по барабану.
← →
Grom PE © (2006-09-04 14:55) [37]> Gero © (03.09.06 23:36) [34]
Как раз в размере самого манифеста.
← →
Gero © (2006-09-04 15:19) [38]> [37] Grom PE © (04.09.06 14:55)
Экономия места на винчестере?
← →
Grom PE © (2006-09-04 15:26) [39]> Gero © (04.09.06 15:19) [38]
Да нет, ну, смысл подобной оптимизации приближен к смыслу миниатюризации, то есть, для красоты =)
← →
Gero © (2006-09-04 15:49) [40]> [39] Grom PE © (04.09.06 15:26)
В [28] выглядит гораздо красивее.
← →
Grom PE © (2006-09-04 17:46) [41]>Gero © (04.09.06 15:49) [40]
Что ж, манифест обычно лежит внутри программы, а там критерий красоты только один - размер. Ну маньяк я оптимизации, каждый байт люблю экономить.
← →
Ketmar © (2006-09-04 17:58) [42]> [41] Grom PE © (04.09.06 17:46)
жкономь -- не экономь, а всё равно секция -- 512 байтиков.
← →
Grom PE © (2006-09-04 18:34) [43]> Ketmar © (04.09.06 17:58) [42]
Это заметно только в том случае, если в ресурсах кроме манифеста ничего нет, и exe тоже не сжат..
← →
Loginov Dmitry © (2006-09-04 18:56) [44]> SerJaNT © (03.09.06 10:47) [7]
> Как и было сказано выше, XPManifest никаким образом не может
> влиять на скорость работы программы и вызывать оишбки.!
Не может влиять, но влияет. Не может тормозить, но тормозит.
1. Размести в dll-ке форму с компонентом TGroupBox, покажи ее разок, после чего закрой приложение. AV.
2. Были жуткие тормоза, когда на форму клались TPageControl (c TTabSheet) , на вкладке лежал TDBGrid и TPanel, на панели около 15 TLabel. При возникновении OnAfterScroll набора данных выполнялось обновления текста меток, и прога подвисала секунды на 2. Без манифеста никаких тормозов не наблюдалось.
Страницы: 1 2 вся ветка
Текущий архив: 2006.09.24;
Скачать: CL | DM;
Память: 0.56 MB
Время: 0.044 c