|
|
|
скоро сойду с ума..
|
|||
|---|---|---|---|
|
#18+
не могу разобраться второй день.. код с сокращениями, ОС WinXP: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. если все собираю в exe, то работает, но если dll, то Process32First() не срабатывает (GetLastError() == 24) Далее, обнаружил чисто случайно, комменчу 2 строчки [1] & [2] и все работает как надо, также можно закомментить [А] & [Б], тоже будет работать. Но! Комментить нужно парами, т.е. если убрать одну из строчек из кода, то Process32First() работать в dll не будет!! Я решил, что вперед созданные потоки каким-то чудом воздействуют на Process32First() и перенес ее вызов до создания обоих потоков. Но фокусы c [1] & [2] || [А] & [Б] продолжаются! Очень нужно стороннее мнение, я уже ничего не смогу придумать. Да, кстати, Process32First() в созданных потоках работает без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2007, 17:09:46 |
|
||
|
скоро сойду с ума..
|
|||
|---|---|---|---|
|
#18+
MSDN говорит о счетчике, который "ResumeThread" уменьшает. Может он здесь - Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2007, 18:14:19 |
|
||
|
скоро сойду с ума..
|
|||
|---|---|---|---|
|
#18+
1211212MSDN говорит о счетчике, который "ResumeThread" уменьшает. Может он здесь - Код: plaintext 1. так когда я этот код с "ResumeThread" сношу ниже злополучного места, то выходит система умеет предсказывать, что он не проинициализируется?? нет, потоки создаются нормально, и до и после вредного места.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2007, 18:19:57 |
|
||
|
скоро сойду с ума..
|
|||
|---|---|---|---|
|
#18+
А CloseHandle(hThread) нафига? В хелпе четко же написано, Therefore, when using _beginthread and _endthread, do not explicitly close the thread handle by calling the Win32 CloseHandle API. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2007, 18:20:06 |
|
||
|
скоро сойду с ума..
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей АлексеевичА CloseHandle(hThread) нафига? В хелпе четко же написано, Therefore, when using _beginthread and _endthread, do not explicitly close the thread handle by calling the Win32 CloseHandle API. Я же использую не _beginthread, а _beginthreadex Richter Однако с функцией _endthread дело обстоит куда хуже, чем кажется: перед вызовом ExitThread она обращается к CloseHandle и передает ей описатель нового потока. Richter Новая функция _endthreadex, не закрывает описатель потока.. поэтому закрываю хендл спокойно, т.к. он мне болше не нужен, а после могу забыть это сделать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2007, 18:28:51 |
|
||
|
скоро сойду с ума..
|
|||
|---|---|---|---|
|
#18+
Tubrik пишет: > поэтому закрываю хендл спокойно, т.к. он мне болше не нужен, а после > могу забыть это сделать.. Ну хэндлы-то можно вообще не закрывать , а как это относится к Process32First - я не знаю. Наверняка ты неправильно обращаешся с функциями ToolHelp. Я к сожалению не эксперт, но вот когда ты снапшот создаешь ? CreateToolhelp32Snapshot когда вызываешь ? До этого всего, или после ? Думаю, что если до, то Win32 может запросто изключить эти новые треды или процессы, изменившиеся после, из этого снапшота. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 10:11:03 |
|
||
|
скоро сойду с ума..
|
|||
|---|---|---|---|
|
#18+
MasterZiv Tubrik пишет: > поэтому закрываю хендл спокойно, т.к. он мне болше не нужен, а после > могу забыть это сделать.. Ну хэндлы-то можно вообще не закрывать , а как это относится к Process32First - я не знаю. Наверняка ты неправильно обращаешся с функциями ToolHelp. Я к сожалению не эксперт, но вот когда ты снапшот создаешь ? CreateToolhelp32Snapshot когда вызываешь ? До этого всего, или после ? Думаю, что если до, то Win32 может запросто изключить эти новые треды или процессы, изменившиеся после, из этого снапшота. Posted via ActualForum NNTP Server 1.4 Вызываю и до и после, я это уже описал в самом начале топика, может непонятно описал.. С ToolHelp обращаюсь правильно, по крайней мере так считаю, т.к. тестил можество раз, все было прекрасно, пока не заморочился с приоритетом потоков. Самое удивительное, что когда хотел для форума собрать и выложить укороченный вариант исходного кода, то повторить проблему не удалось, т.е. все работает как и должно, как в exe, так и в длл, но найти в этом факте путь к решению проблемы не смог пока что.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 12:04:10 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34829197&tid=2028104]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
168ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 448ms |

| 0 / 0 |
