Программы для расчёта отопительных систем. Запускаются и работают, но при попытке вывода на печать (предварительного просмотра, настройки принтера) ничего не происходит Демо-версии программ (ограничение на печать - должно выводиться сообщение о невозможности печати в демо-версии) http://www.kan.by/download/kan_ozc.zip http://www.kan.by/download/kan_graf.zip
У меня вообще приложение не запускается, вываливается с такой ошибочкой: "[terentich@server Kan3]$ wine Co.exe fixme:toolhelp:InterruptRegister16 (0000, 0x11df00ba), stub. wine: Unhandled page fault on read access to 0x00003772 at address 0x7eb68e66 (thread 000c), starting debugger... Unhandled exception: page fault on read access to 0x00003772 in 32-bit code (0x7eb68e66)."
Программа нормально запускается, загружает проекты. При предварительном просмотре рисунка падения не происходит. А при предварительном просмотре таблиц действительно происходит падение: wine: Unhandled page fault on read access to 0xffffffff at address 0x12e7:0x0000a1a3 (thread 0028), starting debugger... Unhandled exception: page fault on read access to 0xffffffff in 16-bit code (12e7:a1a3). Backtrace: =>1 0x12e7:0xa1a3 (0x145f:0xb5ca) 2 0x142f:0x1627 (0x145f:0xb5d8) 3 0x142f:0x19ef (0x145f:0xb5e8) 4 0x143f:0x50c9 (0x145f:0xb5f8) 5 0x1437:0x260c (0x145f:0xb60a) 6 0x1437:0x45d2 (0x145f:0xb61c) 7 0x143f:0x3737 (0x145f:0xb630) 8 0x1437:0x4270 (0x145f:0xb652) 9 0x143f:0x1922 (0x145f:0xb672) 10 0x101f:0x0468 __wine_call_to_16_ret() in kernel32 (0x145f:0xb6ac) 11 0x7b8939de K32WOWCallback16Ex+0xce(vpfn16=0, dwFlags=<is not available>, cbArgs=<register ESI not in topmost frame>, pArgs=0x7e6fce90, pdwRetCode=0x7e6fcebc) [/home/vitperov/Projects/wine/dlls/kernel32/wowthunk.c:637] in kernel32 (0x7e6fce48) 12 0x7eeadd5c call_window_proc16+0x19c(hwnd=56, msg=273, wParam=103, lParam=<register EDI not in topmost frame>, result=0x7e6fd1d8, arg=<is not available>) [/home/vitperov/Projects/wine/dlls/user32/winproc.c:553] in user32 (0x7e6fd198) 13 0x7eeaf268 CallWindowProc16+0x78(func=0x15570392, hwnd=56, msg=273, wParam=103, lParam=0) [/home/vitperov/Projects/wine/dlls/user32/winproc.c:2244] in user32 (0x7e6fd1e8) 14 0x7ee246b0 in user32 (+0x146b0) (0x7e6fd208) 15 0x7b89468e __wine_call_from_16+0x76() in kernel32 (0x7e6fd238) 16 0x132f:0x273d (0x145f:0xb6c6) 17 0x143f:0x1922 (0x145f:0xb6e6) 18 0x101f:0x0468 __wine_call_to_16_ret() in kernel32 (0x145f:0xb720) 19 0x7b8939de K32WOWCallback16Ex+0xce(vpfn16=0, dwFlags=<is not available>, cbArgs=<register ESI not in topmost frame>, pArgs=0x7e6fd2d0, pdwRetCode=0x7e6fd2fc) [/home/vitperov/Projects/wine/dlls/kernel32/wowthunk.c:637] in kernel32 (0x7e6fd288) 20 0x7eeadd5c call_window_proc16+0x19c(hwnd=56, msg=273, wParam=103, lParam=<register EDI not in topmost frame>, result=0x7e6fd618, arg=<is not available>) [/home/vitperov/Projects/wine/dlls/user32/winproc.c:553] in user32 (0x7e6fd5d8) 21 0x7eeaf268 CallWindowProc16+0x78(func=0x155701cf, hwnd=56, msg=273, wParam=103, lParam=0) [/home/vitperov/Projects/wine/dlls/user32/winproc.c:2244] in user32 (0x7e6fd628) 22 0x7ee84283 DispatchMessage16+0xd3(msg=<register EDI not in topmost frame>) [/home/vitperov/Projects/wine/dlls/user32/msg16.c:375] in user32 (0x7e6fd668) 23 0x7ee246d7 in user32 (+0x146d7) (0x7e6fd678) 24 0x7b89468e __wine_call_from_16+0x76() in kernel32 (0x7e6fd6a8) 25 0x143f:0x74d8 (0x145f:0xb73e) 26 0x143f:0x750d (0x145f:0xb748) 27 0x143f:0x771b (0x145f:0xb752) 28 0x11ef:0x02f4 (0x145f:0xb75c) 29 0x11ef:0x0000 (0x145f:0x0000)
в функцию wine_call_to_16_regs передаются вполне нормальные значения: context=0x7e6f8a7c cbArgs=14, call16_handler=0x7b8942d0 Но судя по бактрейсу, а также по промежуточному выводу, wine_call_to_16_regs вызывается рекурсивно!
Падает при обработке сообщения: fixme:msg:DispatchMessage16 MESSAGE=273. 273 это WM_COMMAND. wParam=103. Поэтому это не акселератор и не комманда меню Пока это ничего не дадёт
Пробовал отловить вызов диалога печати - он так и не вызывается. Достаточно странная программа
Пока не вижу возможных путей решения.
Для тех, кто не пользуется багзиллой или не умеет пользоваться групповым редактированием при поиске, закрываем задачи, которые они должны были принять.