socket (ws2_32.dll) в потоке приводит к эксепшену.

Тема в разделе "WASM.NETWORKS", создана пользователем kreon, 1 мар 2009.

  1. kreon

    kreon New Member

    Публикаций:
    0
    Регистрация:
    1 мар 2009
    Сообщения:
    2
    winXP sp2
    FASM 1.67
    Код (Text):
    1. ...
    2. CreateThread,0,0,proc_socket,0,0,0
    3. ....
    4. proc proc_socket
    5.  local wData : rb 400
    6.  local wSocket : dd ?
    7.  lea eax,[wData]
    8.  invoke WSAStartup,0x00000101,eax
    9.  test eax,eax
    10.  jz @F
    11.  mov [wSocket],eax
    12.  invoke socket,AF_INET,SOCK_STREAM,0
    13.  ; тут вываливается эксепшн
    14.  ....
    15. @@:
    16.  invoke MessageBoxA,0,"error","!",0
    17. ret
    18. endp
    WSAStartup срабатывает нормально
    пробовал даже отдельно подргружать в потом ws32_2.dll - не помогает.
    В чём может быть косяк? Эксепшн вылетает до ядра сразу, ничем промежуточным не ловится...
     
  2. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    Код (Text):
    1. invoke WSAStartup,0x101,eax
    2. test eax,eax
    3. jnz @F
    jnz
     
  3. kreon

    kreon New Member

    Публикаций:
    0
    Регистрация:
    1 мар 2009
    Сообщения:
    2
    Aspire
    ошибся, когда набирал )
    суть то не меняется....
     
  4. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    kreon Хренасе не меняется..
     
  5. MrInterpol

    MrInterpol New Member

    Публикаций:
    0
    Регистрация:
    29 ноя 2008
    Сообщения:
    18
    Попробуй WSAStartup вынести за пределы потока чтобы вызов происходил только 1 раз
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Где исключение возникает ?
    Экзешник в студию.