Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Неопределнная ошибка в связке FLL+VFP
|
|||
|---|---|---|---|
|
#18+
Люди! Подскажите пожалуйста, как мне из библиотеки (FLL или DLL) дернуть метод объекта. Делаю так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. С++: Это код потока .....Что-то там происходит char buff[255]; while (!ExitAllThread) { ... тут в buff уже лежит то что надо. _Execute("oOBJ.EV_RXFLAG()\0"); } А это функция которая у нас в фоксе называется GetData() void getcurrdata(ParamBlk FAR *parm) { #define p0 (parm->p[0].val) int indexport; Value val; indexport = p0.ev_long; val.ev_type = 'C'; val.ev_length = CPort[indexport].lendata; val.ev_handle = _AllocHand(val.ev_length); _HLock(val.ev_handle); _MemMove((char *) _HandToPtr(val.ev_handle ),(volatile) CPort[indexport].buff,val.ev_length); _HUnLock(val.ev_handle); _RetVal(&val); } Но дело в том что при n-м количестве выполнений данный код вызывает неопределенную ошибку. В чем дело-то? Может кто сталкивался ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 11:44 |
|
||
|
Неопределнная ошибка в связке FLL+VFP
|
|||
|---|---|---|---|
|
#18+
Я не увидел в конце функции getcurrdata команды _FreeHand(val.ev_handle); Из-за этого могут быть ошибки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2003, 13:17 |
|
||
|
Неопределнная ошибка в связке FLL+VFP
|
|||
|---|---|---|---|
|
#18+
Нет. Не помгло, хотя "полегчало" проге заметно. Если не трогать главное окно проиложения, то все работает нормально. Но как только пробовать открыть дочернее окно или даже просто попробовать форме выполнить ресайз возникает ошибка "нарушение вызова popjmp/pushjmp". И что это такое ? Как бороть ? Как я понимаю что-то со стеком приложения происходит. Так я память кореекно выделю под нужды и коректно очищаю. Может проблема в том что обмен даннми веду через глобальный буфер который один для всех процессов, так от у меня тож структурой образован. Для каждого потока свой член. Есть рассуждения на тему ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2003, 10:02 |
|
||
|
Неопределнная ошибка в связке FLL+VFP
|
|||
|---|---|---|---|
|
#18+
Я бы сделал не возврат значения функции, а через параметр по ссылке типа этого: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2003, 10:37 |
|
||
|
Неопределнная ошибка в связке FLL+VFP
|
|||
|---|---|---|---|
|
#18+
И так пробовал и так. Проблема не в этом. Приложение "падает" после некоторого количества выполнений MyObject.EV_RXFLAG(). Причем, ошибка "висит", но обмен данными идет и что самое удивительное правильно идет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2003, 10:21 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32329708&tid=1597548]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 259ms |
| total: | 412ms |

| 0 / 0 |
