Про InternetWriteFile мало чего есть в инете, но всё-таки нашёл один пример http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=63 30&lngWId=3 попытался перевести на асму, и вот что получилось: Код (Text): .data szUrll db "127.0.0.1",0 szAnon db "anonymous",0 szPass db "xz@mila.net",0 szFileName db "uploads/test.txt",0 szFileNamel db "C:\masm32\test.txt",0 hInternet dd 0 hConnection dd 0 hFile dd 0 hLocalFile dd 0 lFileSize dd 0 hBytes dd 0 Buffer db 2048 dup(0) .code start: invoke InternetOpen,$CTA0("Title"),0,0,0,0 mov hInternet,eax .IF eax != 0 invoke InternetConnect,hInternet,offset szUrll,21,offset szAnon,offset szPass,INTERNET_SERVICE_FTP,INTERNET_FLAG_ASYNC,1 mov hConnection,eax .IF eax != 0 invoke FtpOpenFile,hConnection,offset szFileName,GENERIC_WRITE,FTP_TRANSFER_TYPE_BINARY,0 mov hFile,eax invoke CreateFile,offset szFileNamel,GENERIC_READ,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL mov hLocalFile,eax .IF eax != INVALID_HANDLE_VALUE invoke GetFileSize,hLocalFile,0 mov lFileSize,eax .While lFileSize != 0 .IF lFileSize < 2048 mov ecx,dword ptr [lFileSize] .ELSE mov ecx,2048 .ENDIF sub dword ptr [lFileSize],ecx push ecx invoke ReadFile,hFile,offset Buffer,ecx,addr hBytes,0 invoke InternetWriteFile,hFile,offset Buffer,ecx,addr hBytes pop ecx .ENDW .ENDIF invoke CloseHandle,hLocalFile invoke InternetCloseHandle,hFile .ENDIF invoke InternetCloseHandle,hConnection .ENDIF invoke InternetCloseHandle,hInternet invoke ExitProcess,0 end start Не могли-бы подсказать, почему не работает этот код ? Спасибо!
IceStudent, дык ошибок нет, вот и проблема ) Почти каждую функцию проверяю на error, и нечего, все функции нормально работают, но файл на ftp сервак не перекидывается. Может что с буферами намудрил?
Flasher Почти каждую функцию проверяю на error Если хочешь локализовать проблему, то проверяй каждую. Конкретно - FtpOpenFile, ReadFile и InternetWriteFile.