WSAStartup проблема

Тема в разделе "WASM.BEGINNERS", создана пользователем LMZ, 9 авг 2005.

  1. LMZ

    LMZ New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2005
    Сообщения:
    15
    Адрес:
    Молдова
    .386

    .model flat, stdcall

    option casemap :none



    include C:\MASM32\INCLUDE\windows.inc

    include C:\MASM32\INCLUDE\kernel32.inc

    include C:\MASM32\INCLUDE\shell32.inc

    include C:\MASM32\INCLUDE\wsock32.inc



    includelib C:\MASM32\LIB\kernel32.lib

    includelib C:\MASM32\LIB\shell32.lib

    includelib C:\MASM32\LIB\wsock32.lib



    ; ###################################################################### ###



    .data

    h_output DWORD ?

    str1 db ?

    str_len DWORD ?

    VERSION1_1 DWORD 1

    gg DWORD ?

    err DWORD ?



    WSADATA struct

    mVersion dw 0

    mHighVersion dw 0

    szDescription db 257 dup(0)

    szSystemStatus db 129 dup(0)

    iMaxSockets dw 0

    iMaxUpdDg dw 0

    lpVendorInfo dd 0

    WSADATA ends



    wsa WSADATA <?>

    .code





    start:



    invoke WSAStartup, ADDR wsa, 1



    ;call proc1





    ; invoke WSAStartup,offset WSADATA, VERSION1_1



    invoke ExitProcess,0

    end start







    вот код выше.

    в дебагере после WSAStartup открывается окно Access violation write to address=1

    что не так?
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    В WSAStartup первый параметр версия, а второй уже указатель на структуру.
     
  3. yureckor

    yureckor New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    494
    Адрес:
    Russia
    Код (Text):
    1. invoke WSAStartup,101h,OF wsadata


    можно также попробовать версию 2.02 (0202h), но она под старыми операционками отсутсвует. Так что сперва пробуем новую, если не идет - 1.01
     
  4. LMZ

    LMZ New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2005
    Сообщения:
    15
    Адрес:
    Молдова
    пасиб, будем разбираться
     
  5. LMZ

    LMZ New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2005
    Сообщения:
    15
    Адрес:
    Молдова
    ;##################...

    WSADATA struct

    mVersion dw 0

    mHighVersion dw 0

    szDescription db 257 dup(0)

    szSystemStatus db 129 dup(0)

    iMaxSockets dw 0

    iMaxUpdDg dw 0

    lpVendorInfo dd 0

    WSADATA ends

    ;###################

    wsa WSADATA <?>

    .code





    start:





    invoke WSAStartup, 0101h, offset wsa

    ;#####################....



    в eax засовываются нуль :dntknw:

    почему???
     
  6. yureckor

    yureckor New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    494
    Адрес:
    Russia
    WSAStartup returns zero if successful.

    Если пишешь подо что нибудь (в данном случае Винду), читай документацию.
     
  7. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.553
    Адрес:
    Russia
    если под юникс, то там нет ничего похожего на WSAStartup

    сразу пишешь :

    int fd_;



    if ((fd_ = socket(AF_INET,SOCK_STREAM,0))<0);

    {

    //error

    }
     
  8. LMZ

    LMZ New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2005
    Сообщения:
    15
    Адрес:
    Молдова
    вроде вопрос я задавал под асм :dntknw: