Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[98.82.120.188] |
|
Сообщ.
#1
,
|
|
|
Привет всем.
Возникла проблема с загрузкой ресурсов. У меня в программе вызывается окно по событию: сработал аларм. Завожу два аларма. По срабатыванию первого аларма, окно вызывается без проблем, но если на него не отреагировать и дождаться пока сработает второй аларм и вызовется это же самое окно, то креш. С управлением окнами вроде всё в порядке. Проблема в следующем коде: MemHandle resH; MemHandle snzStrListH; MemHandle resFollowH; MemHandle flwStrListH; Char *resP; Char* resFollowP; resH = DmGetResource (strListRscType, MyResStringList); resP = (Char *) MemHandleLock(resH); resP += StrLen(resP) + 1; MemMove(&snzListCount, resP, sizeof(UInt16)); resP += sizeof(UInt16); snzStrListH = SysFormPointerArrayToStrings(resP, snzListCount); далее делаю тоже самое, но для другого списка строк, хранящегося в ресурсах: resFollowH = DmGetResource (strListRscType, MyEmailResStringList); resFollowP = (Char *) MemHandleLock(resFollowH); resFollowP += StrLen(resFollowP) + 1; MemMove(&flwListCount, resFollowP, sizeof(UInt16)); resFollowP += sizeof(UInt16); flwStrListH = SysFormPointerArrayToStrings(resFollowP, flwListCount); Сами ресурсы представляют собой обычный набор строк: STRINGTABLE ID MyResStringList "" "Name1" "Name2" "Name3" "Email" Что я делаю неправильно при загрузке ресурсов. Спасибо |
Сообщ.
#2
,
|
|
|
модальная форма, которая выскакивает на аларм, крутит свой мэйнлуп и не отпускает его, пока форма не будет закрыта. вы лочите мэмхэндл потом приходит второй аларм, а залоченный хэндл лочится снова. оттого и может быть крэш.
возможные выходы: 1. юзать немодальную форму. при следующем аларме принудительно закрывать существующую форму 2. как только нужна в мэмхэндле отпадает, сразу же его разлочивать (кстати, по коду не видно, где это происходит). также, рекомендую прогнать ситуацию на эмуляторе. там можно вычислить проблеммное место. |
Сообщ.
#3
,
|
|
|
|
Сообщ.
#4
,
|
|
|
|