при открытых модульных окнах программа 1с 8.0 сама закрывается если сменить виртуальный рабочий стол (примерно через 5 сек.). В консоль выводится: fixme:actctx:ActivateActCtx 0x7fef5a38 0x7fe2e7a4 fixme:actctx:DeactivateActCtx 00000000 00f00bad fixme:gdi:ExtCreatePen Hatches not implemented fixme:system:SystemParametersInfoW Unimplemented action: 95 (SPI_GETSNAPTODEFBUTTON) fixme:advapi:GetCurrentHwProfileA (0x7fe2ebd0) semi-stub fixme:shell:SHCreateShellPalette stub fixme:shell:SHGetInverseCMAP - returning bogus address for SHGetInverseCMAP fixme:text:TEXT_Ellipsify Rectangle size = -2: stub! fixme:system:SystemParametersInfoW Unimplemented action: 95 (SPI_GETSNAPTODEFBUTTON) text.c:724: TEXT_NextLineW: Проверочное утверждение `pellip->under == 0 && pellip->after == 0' не выполнено. wine: Assertion failed at address 0xb7ce4c16 (thread 0009), starting debugger... WineDbg starting on pid 0008 Unhandled exception: assertion failed in 32-bit code (0xb7ce4c16). Register dump: CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033 ... Воспроизведение: Запускаем 1C80 и открываем пункт Помощь->О программе. Переходим на другой рабочий стол. Секунд через 5 1Сv80 падает.
Подтверждаю, мой случай. Из той же серии: http://bugs.etersoft.ru/show_bug.cgi?id=149
Здесь проваливается из-за того, что pellip->after=14-3=11
Непонятно, почему в функцию TEXT_NextLineW() при выводе текста, например, в окно about передаётся аттрибут DT_PATH_ELLIPSIS, хотя обрезать текст там не нужно. Может быть, неправильно передаётся формат, а не идёт неправильный расчёт параметров... P.S. Вообще, не совсем понимаю, зачем там assert. Вроде ничего критического не блокирует, а проблемы из-за него уже не в первый раз. Может, заменить на warning?
Заменил проверку assert() на обычный fixme(). При переключении рабочих столов выдаёт сообщение в консоль, но не падает. Вообще, не заметил никаких последствий провала проверки этого условия. По крайней мере, точно не должно проявиться в тексте, который выводится полностью, без сокращения.