Конференция "KOL" » Что скажете... [Delphi, Windows]
 
  • Дмитрий К © (02.09.07 15:41) [220]
    Пути самые нормальные, без пробелов и русских букв. Все картинки показываются правильно. Все тумбнэйлы перечеркнуты. Если выбрать Exclude bad images все тумбы убираются.

    Эксперименты.
    1. С c:\tst1img\img.bmp все точно также. если кликнуть по тумбнэйлу картинка показывается.

    2. Если выключить показ тумбнэйлов и включить после переоткрытия то грузятся, и картинки грузятся.

    Проверил 401M - эффект не проявляется, зато проявляется в J,j,K, если оформление не граш, а в 401l (л) и в грашах. j вообще падает если запустить с папкой в параметре, опять же если оформление не граш.

    Я уже запутался.  Там проявляется, тут не проявляется.
    Вообще, в 401m при запуске с параметром c:\tst1img\img.bmp  проявляется стабильно при любом оформлении.
  • Vladimir Kladov (02.09.07 16:15) [221]
    Если это в M не проявляется, тогда это вдвойне странно, потому что изменения в основном касались инсталлятора. Работа с клипбордом тоже вроде не должна влиять. Но если такое разное поведение на столь небольших изменениях, то я боюсь, что на мини-тесте просто уйдёт, и отловить ничего не удастся. Ладно, еще смотреть буду, и попробую тест сделать с логом загрузки тумбнайлов. Наверняка там где-то исключение вываливается, и тумб не догружается.
  • Дмитрий К © (02.09.07 16:37) [222]
    Вот эта строка, случайно, ни о чем не скажет?

    First chance exception 0xC0000096 (Privileged Instruction) occurred in "ZOOMER.EXE" at address 0x004D892C.
  • Vladimir Kladov (02.09.07 18:27) [223]
    Нет, это скорее всего элемент защиты. У меня там в неоторых местах специально такое исключение срабатывает.

    Появилась другая мысль, когда я еще раз глянул код. Поставил сейчас защиту семафором ресурса, который (по идее) не должен пересекаться в разных потоках. Но (у вас 2 процессора?) нет гарантии, что не случится чего-нибудь эдакого, если при старте программы ей уже известен путь, и процесс сканирования тумбочек начинается раньше чем я предположил. В общем, дело тонкое, у себя проверил как успел, выложил как 401N. Заодно с уже исправленным стандартным диалогом для 95, но это, наверное, всё равно мало кому интересно.  Размер 793К, не накладно? (Я уж решил пока попробовать в полном варианте)

    Да, еще добавил все-таки лог на тумбочки но только если тумбочка не загрузилась. Имен файлов мне не интересны, главное - цифры.
  • Дмитрий К © (02.09.07 18:46) [224]

    > выложил как 401N

    The requested URL /ZoomerSetup.zip was not found on this server.
  • Дмитрий К © (02.09.07 19:15) [225]
    А, все. Нашел.
    SetupZoomer.zip
  • Vladimir Kladov (02.09.07 20:52) [226]
    Ну если кто забудет найти теперь легко: http://zoomer.kolmck.net - официальная страница. С нетерпением жду результатов теста. Надеюсь, это безобразие исчезнет.
  • Дмитрий К © (02.09.07 21:17) [227]

    > http://zoomer.kolmck.net - официальная страница.

    Ссылка http://zoomer.kolmck.net/ZoomerSetup.zip на официальной странице на данный момент указывает в никуда.


    > С нетерпением жду результатов теста. Надеюсь, это безобразие
    > исчезнет.

    Безобразие  не исчезло. Более того, проверил на виртуальной машине в WinXP и Win98 - точно такое же поведение.

    Никаких логов про тумбы при этом нигде не создается.

    И кстати, при 16-битной палитре в W98 портятся треугольнички в расширенном диалоге выбора папки.
  • Vladimir Kladov (02.09.07 22:03) [228]
    Спасибо за проверку. Жаль что никто больше ничего не пишет. Наверное у вас очень особенный комп. У себя проверил на 3 железных (с XP) и 2 виртуальных (95 и 98) и ничего такого. Как же лога нет, должен быть в папке программы thumb_bad_log.txt. Создаваемость лога можно проверить в обычном случае, открыв папку с самой программой зумер и пролистав до нераспознанных картинок в ресурсах (т.к. экзешник сжат, то не все ресурсы видны равильно). Если он и впрямь не создаётся при проявлении бага, значит, вылетает ещё до того места, которое я заподозрил. Это надо хорошо подумать, в крайнем случае вообще всю загрузку в try-except заключить, блоками, чтобы нарыть. Сейчас линк поправлю, как же это я так перепутал все наоборот. И еще удивляюсь - почему не качают... )))
  • Vladimir Kladov (02.09.07 22:08) [229]
    Спасибо за проверку. Жаль что никто больше ничего не пишет по поводу такого глюка. Наверное у вас очень особенный комп. У себя проверил на 3 железных (с XP) и 2 виртуальных (95 и 98) и ничего такого. Еще 1 в углу стоит, давно не включал, пень-100, ну на нем как-то и особого смысла проверять нет.

    Как же лога нет, должен быть в папке программы thumb_bad_log.txt. Создаваемость лога можно проверить в обычном случае, открыв папку с самой программой зумер и пролистав до нераспознанных картинок в ресурсах (т.к. экзешник сжат, то не все ресурсы видны равильно).

    Если он и впрямь не создаётся при проявлении бага, значит, вылетает ещё до того места, которое я заподозрил. Это надо хорошо подумать, в крайнем случае вообще всю загрузку в try-except заключить, блоками, чтобы нарыть.

    Сейчас файл переименую. Чего я в этот раз его наоборот назвал, поторопился.
  • Дмитрий К © (02.09.07 22:13) [230]

    > Наверное у вас очень особенный комп.

    Может быть 64-разрядность каким-нибудь боком влияет.

    thumb_bad_log.txt конечно создается, но не в этом случае. Т.е. картинки-то все нормальные, неиспорченные,  тумбы в обычной ситуации создаются и показываются правильно - ломаются только если запускать Zoomer с параметром папкой.
  • Дмитрий К © (03.09.07 00:20) [231]
    Получил тот же эффект на Athlon XP c WinXP.
    Запускаю Zoomer, бросая папку с картинками на ярлык на раб. столе.
  • Vladimir Kladov (03.09.07 17:36) [232]
    Итак, есть большая вероятность, что задачка решена, я выложил в 401n. Т.к. речь идёт о 2хядерных машинах, и проблема возникает при слишком быстром запуске потока, сканирующего тумбнайлы, я пришёл к выводу, что для случая запуска с путём в параметрах строки его надо придержать на время. Пока поставил цикл из 5 х Sleep( 50 ), с проверкой того, что само приложение хочет завершиться (иначе можно было бы сразу sleep(250) - на 1/4 секунды). Видимо, надо дать сначала поработать некоторым другим потокам, чтобы они подготовили почву. (Всего потоков от 5 до 9, зависит от обстоятельств, но загрузка тумбочек в своём потоке крутится). В общем есть большой шанс, что это решает проблему для 99,9% случаев (если решает, на что надеюсь). Остаётся ещё 0,1% (или меньше), которые я просто не знаю как решить пока - мне просто нужен такой 2хядерный комп, чтобы пробовать прямо на нём, но пока такой возможности нет. Т.е. если комп сильно загружен в этот момент, и после 0,25  сек. поток всё-таки включится раньше, чем то, чего он ждал, то будет всё опять так же. Чтобы узнать точно, что именно он ждал, чтобы начать работать правильно, нужно много экспериментов. Пока отложу на будущее.
  • Vladimir Kladov (04.09.07 10:53) [233]
    А это точно только с директорией такое (было до n)? а что, если отдельный файл бросить на ярлык? А то я исправление сделал только для случая директории.
  • homm © (04.09.07 10:55) [234]
    Владимир, Вы получили мое второе письмо с исправлениями, отправленое в воскресенье вечером (у вас ночью)? А то ответа нет, я волнуюсь :)
  • Дмитрий К © (04.09.07 12:39) [235]
    > А это точно только с директорией такое (было до n)?
    Точно только с директорией. Специально проверил на более ранних версиях, если бросать один файл, тумбы нормально создаются.

    В 401n ситуация не изменилась. По прежнему, в большинстве случаев бросания папки на ярлык, тумбы перечеркнуты (иногда все нормально). Этот эффект, как я уже говорил, наблюдаю не только на 2-ядерной машине, но и на обычном AMD Athlon XP с одним ядром.

    Из еще замеченных мной багов:
    1. Установка на одноядерном Атлоне падает при запуске с системным сообщением об ошибке в программе.
    2. На 2-ядерном в Vista Zoomer не убирает за собой временные файлы (ZOO????.tmp).

    P.S. Картинка - http://slil.ru/24812910 - папка с одним bmp брошена на ярлык.
  • Vladimir Kladov (04.09.07 13:38) [236]
    Т.е. все-таки теперь иногда проскакивает через нечто. Можно было бы увеличить задержку по времени, но это способ все равно не 100% надёжный. Надо бы как-то попробовать выяснить, какого такого события надо дождаться перед тем, как начинать считывать тумбнайлы. Вот такой вопрос: у вас не зарегенная версия? Всё, что я нахожу подозрительного, относится именно к зарегенной версии пока. (И чего я так до сих пор ниодного атлона не приобрел, хотя бы для тестирования. Теперь вот пожинаю).
  • Дмитрий К © (04.09.07 14:08) [237]
    На 2-ядерном зарегенная. На атлоне, соответственно, - нет.
  • Vladimir Kladov (04.09.07 16:02) [238]
    Т.е. без разницы. Вот не пойму при чём там может быть Атлон вообще, 2хядерность еще каким-то боком может влиять на порядок выполнения потоков хотя бы. Может все-таки дело в Висте (виртуальная машина под Вистой, думаю, все равно будет фактически работать по правилам хостовой оси и хостового железа: я знаю только один эмулятор ПЦ, который реально озволяет смоделировть чужое железо, например 486 или Пень-2, он именно эмулирует каждую машинную команду, а не запускает код блоками, до очередного системного обращения).

    Да, а сообщение об ошибке в инсталляторе с Атлона можно увидеть? (а то я еще код не менял, адрес может быть полезен. Тем более что в инсталляторе нет защиты через исключения, там вообще практически нет защиты, и выполяется совсем отдельный кусок кода).
  • homm © (04.09.07 16:21) [239]
    Чувствую себя человеком-невидимкой :(

    Владимир, [234]
 
Конференция "KOL" » Что скажете... [Delphi, Windows]
Есть новые Нет новых   [134431   +15][b:0.001][p:0.001]