|
|
|
Передача параметров в потоковую функцию
|
|||
|---|---|---|---|
|
#18+
Привет! Господа, подскажите ответ на такой вопрос: Есть структура: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Эту струткуру мне нужно передать в качестве параметра в потоковую фукцию NotyfyEvents. Запуск потока: Value val; тут в val напихали что надо hThr = CreateThread(NULL,0,NotyfyEvents,(LPVOID) (тут передается val , как ?),0,NULL); Сама потоковая функция: DWORD WINAPI NotyfyEvents(LPVOID pParams) { Value Tval; Как привести pParams к Tval ? } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 16:00 |
|
||
|
Передача параметров в потоковую функцию
|
|||
|---|---|---|---|
|
#18+
hThr = CreateThread(NULL,0,NotyfyEvents,(LPVOID)(&val),0,NULL); DWORD WINAPI NotyfyEvents(LPVOID pParams) { Value *pTval = (Value*)pParams; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 16:31 |
|
||
|
Передача параметров в потоковую функцию
|
|||
|---|---|---|---|
|
#18+
Ага, получилось, но есть еще один косячек: Как бы так предистория. Пишу библу раширения функция системы VFP. Фактически это та же DLL , ток с механизмом вызова функций заточенным под VFP и написанными функциями для обмена данными с VFP и коего чего специализированного. Параметры из проги в функцию передаются хитрым образом , через структуру ParamBlk. Не будем вдаваться в подробности, главное что параметры достоверно поступают в вызываемую функцию и ини именно те самые. Нижеприведенный код, это код функции запуска потока, в качетве параметра ей передается ссылка на объект. И он передается. Есть функция , _SetObjectProperty, она устанавливает свойство указанного объекта в значение котрое завели в структуру типа Value. Вот прототип: Код: plaintext 1. 2. 3. 4. Трабл в том что из функции которую вызвали из VFP ,_SetObjectProperty работает, а вот в потоке , куда передали значение структуры содержащей объект не работает и вызывает неисправимую ошибку. В чем грабли ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. А вот потоковая функция(тестовая): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Поможите ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 14:31 |
|
||
|
Передача параметров в потоковую функцию
|
|||
|---|---|---|---|
|
#18+
Проблема в том, что NotyfyEvents ещё не начала работу, а StartHookEvents уже закончила. Поэтому &uThrID имеет неопределённое значение. Так что передавай параметры либо по значению, либо через глобальные ( или те, которые не потеряют актуальности ) либо дождись, пока NotyfyEvents получит переданные параметры. Например так : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 17:42 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=459&tid=2035474]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 346ms |

| 0 / 0 |
