powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Костыль к забавному багу FIBPlus (может кому-нибудь пригодится)
12 сообщений из 12, страница 1 из 1
Костыль к забавному багу FIBPlus (может кому-нибудь пригодится)
    #39434370
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сегодня столкнулись с интересным багом. Есть VCL приложение на Borland C++ Builder 6.0 в котором работа с экземплярами объектов FIBPlus вынесена в отдельный поток (основной поток крутит формы в Application->Run) и если приложение запускается под Windows XP, то при смене раскладки клавиатуры (языка ввода) приложение зависает.

Был создан вырожденный тесткейз, где в отдельном потоке создавался экземпляр TpFIBDatabase и далее крутился цикл со Sleep. Если создание TpFIBDatabase экранировали комментарием, то программа работала нормально, в противном случае - зависала. Выяснилось, что зависание происходило при получении окном приложения сообщения WM_INPUTLANGCHANGEREQUEST и проблему подпёрли следующим костылём - кинули на форму экземпляр TApplicationEvents и в реализации события OnMessage прописали:
Код: plaintext
1.
2.
if(WM_INPUTLANGCHANGEREQUEST == Msg.message)
  Handled = (bool)ActivateKeyboardLayout((HKL)Msg.wParam, Msg.lParam);


P.S. Примечательно, что в аналогичной ситуации на Windows 7 сообщение WM_INPUTLANGCHANGEREQUEST не прилетает и баг проявляется только в Windows XP.
...
Рейтинг: 0 / 0
Костыль к забавному багу FIBPlus (может кому-нибудь пригодится)
    #39434373
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Rdb Dev!
You wrote on 6 апреля 2017 г. 17:37:03:

Rdb Dev> в отдельном потоке создавался экземпляр TpFIBDatabaseуууу...
как всё запущено...

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Костыль к забавному багу FIBPlus (может кому-нибудь пригодится)
    #39434381
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мипардон! Поторопился... Код такой:
Код: plaintext
1.
2.
if(WM_INPUTLANGCHANGEREQUEST == Msg.message)
  Handled = (bool)ActivateKeyboardLayout((HKL)Msg.lParam, 0);
...
Рейтинг: 0 / 0
Костыль к забавному багу FIBPlus (может кому-нибудь пригодится)
    #39434384
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, специфика заказчика, на данный момент, пока еще вынуждает на поддержку подобной совместимости с подпиранием костылями.
...
Рейтинг: 0 / 0
Костыль к забавному багу FIBPlus (может кому-нибудь пригодится)
    #39434388
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Rdb Dev!
You wrote on 6 апреля 2017 г. 17:51:42:

Rdb Dev> специфика заказчиказаказчик суёт нос в код?

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Костыль к забавному багу FIBPlus (может кому-нибудь пригодится)
    #39434389
Dorin Marcoci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А причем здесь FibPlus? еще и под XP, успокоился что не NT4.
...
Рейтинг: 0 / 0
Костыль к забавному багу FIBPlus (может кому-нибудь пригодится)
    #39434391
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dorin Marcoci!
You wrote on 6 апреля 2017 г. 17:53:45:

Dorin Marcoci> еще и под XPXP хорошая система.
особенно на виртуалке.
на просторах СНГ будет ещё долго.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Костыль к забавному багу FIBPlus (может кому-нибудь пригодится)
    #39434398
Dorin Marcoci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, согласен, в корпоративном секторе и закрытых экосистем как например ритэйл будет еще жить.
Больше смахивает на глюк ос, если реально подтверждается, нежели FibPlus.
...
Рейтинг: 0 / 0
Костыль к забавному багу FIBPlus (может кому-нибудь пригодится)
    #39434401
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, нет, заказчик не сует нос в код, но подобными багами по голове, временами, огребает и просит найти решение.
...
Рейтинг: 0 / 0
Костыль к забавному багу FIBPlus (может кому-нибудь пригодится)
    #39434404
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dorin MarcociА причем здесь FibPlus?Действительно! Казалось бы - причем здесь FIBPlus? Сложный вопрос...
Даже не стал разбираться. Версия "фибов" 6.9.5
...
Рейтинг: 0 / 0
Костыль к забавному багу FIBPlus (может кому-нибудь пригодится)
    #39434406
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dorin Marcoci, о причастности FIBPlus подробнее в описании сделанного нами тесткейза в топикстарте.
...
Рейтинг: 0 / 0
Костыль к забавному багу FIBPlus (может кому-нибудь пригодится)
    #39434687
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dorin MarcociА причем здесь FibPlus? еще и под XP, успокоился что не NT4.
20332516
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Костыль к забавному багу FIBPlus (может кому-нибудь пригодится)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]