RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Trap #13 in PMMERGE.DLL


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Mad Int 13h
To : All
Subj : Trap #13 in PMMERGE.DLL

Вот тута одна проблеммка возникла...

Значит так. Имеетется прога, которая в одной thread вырисовывет в клиентское окно что-нибудь, а в главной
(то бишь MyWinProc) по WM_PAINT это окно перерисовывает.

void mythread(PVOID nullmsg)
{
HPS myhps;
while( ... ) {
if(myPaint)return;
mypaint=1;
myhps=WinGetPS(hwndClient)
/* чтото там дроу через WinDrawBitmap ( ) */
WinReleasePS(myhps);
delay( .... );
mypaint=0;
}
_endthread();
}

MRESULT MyWinProc(HWND hwnd,USHORT m,MPARAM mp1,MPARAM mp2)
{
/*

......

*/
switch(m)
{
// ----------
case WM_PAINT
while(myPaint);myPaint=1;
hps=WinBeginPaint( ..... );

/* Тоже чтото рисуем через GpiLine, GpiBox */

WinEndPaint(hps);
myPaint=0;
break;
// ----------
}
}

Так вот эта прога вызывает частенько трапу ╧13 в PMMERGE.DLL (если верить логу), особенно
при перерисовке десктопа. Писана она Watcom 97-OS/2.
В чем глюк, И как его исправить ?

Mon 03 Dec 2001 18:39 Mozilla/4.05 [en] (Win95; I)




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.