InternetConnect на FASM

Тема в разделе "WASM.BEGINNERS", создана пользователем tester3000, 1 мар 2008.

  1. tester3000

    tester3000 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    140
    Не получается скомпилить этот код в чем ошибка ?

    Код (Text):
    1. format PE GUI 4.0
    2. entry start
    3.  
    4. include 'win32a.inc'
    5.  
    6. section '.data' data readable writeable
    7.  
    8. hInt dd ?
    9. hCon dd ?
    10.  
    11. user_agent  db 'Microsoft Internet Explorer',0
    12. server_name db 'ftp.narod.ru',0
    13. user_name   db 'user',0
    14. _pass       db 'password',0
    15. local_file  db 'C:\file.txt',0
    16. rem_file    db 'upfile.txt',0
    17. _fail       db 'Could not connect to server',0
    18.  
    19. section '.code' code readable executable
    20.    start:
    21.          invoke InternetOpen,user_agent,0,0,0,0
    22.          mov [hInt],eax
    23.          invoke InternetConnect,eax,server_name,21,user_name,_pass,INTERNET_SERVICE_FTP,0,0
    24.          test eax,eax
    25.          jnz @f
    26.          jmp _error
    27.  
    28. @@:
    29.          mov [hCon],eax
    30.          invoke FtpPutFile,[hCon],local_file,rem_file,FTP_TRANSFER_TYPE_BINARY,0
    31.          invoke InternetCloseHandle,[hInt]
    32.          invoke ExitProcess,0
    33.  
    34. _error:
    35.         invoke MessageBox,0,_fail,0,MB_ICONERROR+MB_TOPMOST
    36.  
    37. section '.idata' import data readable
    38.  
    39. library kernel,'KERNEL32.DLL',\
    40.         wininet,'WININET.DLL',\
    41.         user32,'USER32.DLL'
    42.  
    43. import kernel,\
    44.        ExitProcess,'ExitProcess'
    45.  
    46. import wininet,\
    47.        InternetOpen,'InternetOpenA',\
    48.        InternetConnect,'InternetConnectA',\
    49.        FtpPutFile,'FtpPutFileA',\
    50.        InternetCloseHandle,'InternetCloseHandle'
    51.  
    52. import user32,\
    53.        MessageBox,'MessageBoxA'
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    компилятор лучше знает...
     
  3. tester3000

    tester3000 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    140
    ну млин само собой я и спрашиваю что я неправильно сделал ругается на INTERNET_SERVICE_FTP
     
  4. Joes

    Joes New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2008
    Сообщения:
    98
    Определи INTERNET_SERVICE_FTP, наверное...
     
  5. tester3000

    tester3000 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    140
    Да FASM как раз мне это и пишет только как правильно это сделать не знаю в masme подобный код без проблем компилится
     
  6. MHajduk

    MHajduk New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    123
    Взято из 'wininet.h':

    #define INTERNET_SERVICE_URL 0
    #define INTERNET_SERVICE_FTP 1
    #define INTERNET_SERVICE_GOPHER 2
    #define INTERNET_SERVICE_HTTP 3
     
  7. Explode Sense

    Explode Sense New Member

    Публикаций:
    0
    Регистрация:
    21 июл 2006
    Сообщения:
    130
    Адрес:
    Russia
    INTERNET_SERVICE_FTP = 1

    и ещё
    FTP_TRANSFER_TYPE_BINARY dd 2
     
  8. MHajduk

    MHajduk New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    123
    Explode Sense
    Если топик стартер знает C/C++, тогда, кажется, сможет такую "конверсию" ('#define INTERNET_SERVICE_FTP 1' в 'INTERNET_SERVICE_FTP = 1') сделать самостоятельно. ;)

    Кстати

    FTP_TRANSFER_TYPE_BINARY = 2

    в противном случае в программе надо было б написать FTP_TRANSFER_TYPE_BINARY в скобках.
     
  9. tester3000

    tester3000 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    140
    Всем спасибо но уже на flatassembler.net подсказали

    Код (Text):
    1. INTERNET_SERVICE_FTP = 1
    2. FTP_TRANSFER_TYPE_BINARY = 2
    Кстати там же нашел скрипт на perl который позволяет конвертировать сишные хидеры в хидеры для FASM