Всем привет. Пишу программку которая устанавливает соединение с сервером, после установления соединения сразу создается поток, проблема в том что после создания потока разрывается соединение с сервером с моей стороны. Поток создаю следущим образом: Код (Text): invoke CreateThread,0,0,offset crbaze,0,0,offset dspt Вот не могу понять может CreateThread закрывает сокеты и потоки нужно создовать другим способом? (Сам поток у меня сокеты закрывать не может в отладчике смотрел сокет закрывается еще до того как запускается поток.) Заранее спасибо!
Вот кусок Код (Text): push ebp mov ebp,esp pushad mov ebx,dword ptr [ebp+12] ..... cmp ebx,WM_COMMAND jnz ms03 cmp word ptr [ebp+16],3200 jnz mdf mov ebx,offset infdb invoke CHP3,hinst,0,0,0,dword ptr [ebp+8] or eax,eax jnz msc01 invoke MessageBoxA,dword ptr [ebp+8],offset err3,offset wname,0 jmp mf msc01: invoke EnableWindow,hbtn,FALSE invoke CreateThread,0,0,offset crbaze,0,0,offset dspt mf: mov dword ptr [ebp-4],1 popad leave ret 16 ms03: CHP3 - здесь идет обращение к библиотеке которая по сети цепляется к АТС о проводит авторизацию. Раньше этой библиотекой пользовался все было без проблем, но в тех программах небыло необходимости создавать потоки.
Спасибо всем кто откликнулся! Решил обойти эту проблему, в программе первым делом создать все необходимые потоки вначале всех потоков пришлось поставить цикл который не дает выполнение основного кода пока не придет соответствующее событие. Но опять возникла проблема, как только какой нибудь поток завершает свою работу (даже те которые даже не трогают сокет) соединение закрывается. Может дело в том как я создаю потоки, где то вычитал про наследие дискрипторов потоков, но этого не понял. К стати про "CHP3" - эту библиотеку когда то писал сам, там тоже создается поток таким же способом, и установка соединения и авторизация все происходит в потоке, поток этот крутится до выгрузки этой библиотеки.