сабж. помогите плиз нужен пример на masm а лучшее на fasm поискал в исходниках там только как работать с сокетами
трабла с HttpSendRequest не знаю как посчитать dwHeadersLength, dwOptionalLength и заполнить lpOptional подскажите плиз Код (Text): BOOL HttpSendRequest( HINTERNET hRequest, LPCTSTR lpszHeaders, DWORD dwHeadersLength, LPVOID lpOptional, DWORD dwOptionalLength ); Код (Text): format PE GUI 4.0 entry start include 'win32a.inc' section '.data' data readable writeable hInternet dd ? hConnect dd ? hRequest dd ? INTERNET_OPEN_TYPE_PRECONFIG = 0 INTERNET_SERVICE_HTTP = 3 INTERNET_FLAG_KEEP_CONNECTION = 400000 lpszFile db 'C:\file.txt',0 lpszAgent db 'Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0; .NET CLR 1.0.2914)',0 lpszServerName db 'localhost',0 lpszVerb db 'POST',0 lpszObjectName db 'index.php',0 lpszHeaders db 'Content-Type: application/x-www-form-urlencoded',13,10,0 lpnoopenfile db 'Unable to open local file!',0 lpnosession db 'Unable to create new remote session!',0 lpnoconnect db 'There are no connection with remote host!',0Dh,'Please check is connection alive?',0 lpnorequest db 'Unable to open request!',0 lpnosendrequest db 'Unable to send request!',0 lpuploadok db 'Upload complete!',0 lpinfo db 'File upload',0 section '.code' code readable executable start: invoke InternetOpen,lpszAgent,INTERNET_OPEN_TYPE_PRECONFIG,0,0,0 test eax,eax jnz @F mov eax,lpnosession call ShowError jmp _exit @@: mov [hInternet],eax invoke InternetConnect,eax,lpszServerName,80,0,0,INTERNET_SERVICE_HTTP,0,0 test eax,eax jnz @F mov eax,lpnoconnect call ShowError jmp _close_inet @@: mov [hConnect],eax invoke HttpOpenRequest,eax,lpszVerb,0,0,INTERNET_FLAG_KEEP_CONNECTION,0 test eax,eax jnz @F mov eax,lpnorequest call ShowError jmp _close_inet @@: mov [hRequest],eax invoke HttpSendRequest,eax,lpszHeaders,dwHeadersLength,lpOptional,dwOptionalLength test eax,eax jnz @F mov eax,lpnosendrequest call ShowError jmp _close_inet @@: invoke MessageBox,0,lpuploadok,lpinfo,MB_ICONINFORMATION+MB_TOPMOST _close_inet: invoke InternetCloseHandle,[hInternet] _exit: invoke ExitProcess,0 proc ShowError invoke MessageBox,0,eax,0,MB_ICONERROR+MB_TOPMOST ret endp section '.idata' import data readable library kernel,'KERNEL32.DLL',\ wininet,'WININET.DLL',\ user32,'USER32.DLL' import kernel,\ ExitProcess,'ExitProcess',\ CloseHandle,'CloseHandle' import wininet,\ InternetOpen,'InternetOpenA',\ InternetConnect,'InternetConnectA',\ HttpOpenRequest,'HttpOpenRequestA',\ HttpSendRequest,'HttpSendRequestA',\ InternetCloseHandle,'InternetCloseHandle'
Вот так описана функция в МСДН. Скачай себе. Полезнейшая вещь! В твоем случае: lpOptional = NULL dwOptionalLength = NULL, т.к. нет дополнительных заголовков dwHeadersLength = 0xFFFFFFFF
zoool да читал я уже это и на rsnd и на msdn Код (Text): lpszFile db 'C:\file.txt',0 lpszAgent db 'Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0; .NET CLR 1.0.2914)',0 lpszServerName db 'localhost',0 lpszVerb db 'POST',0 lpszObjectName db 'index.php',0 lpszHeaders db 'Content-Type: application/x-www-form-urlencoded',13,10,0 мне file.txt нужно отправить методом POST на сервак (http://localhost/index.html) index.html Код (Text): <form action="http://localhost/upload.php" method="POST" enctype="multipart/form-data"> <input type="file" name="file" size="40"> <input type="submit" value="Upload"> </form> upload.php Код (Text): <?php if($_FILES["filename"]["size"] > 1024*3*1024) { echo ("Max. file size is 3 mb"); exit; } if(copy($_FILES["filename"]["tmp_name"], "c:/temp/".$_FILES["filename"]["name"])) { echo("File uploaded <br>"); echo("Filename: "); echo($_FILES["filename"]["name"]); echo("<br>Size: "); echo($_FILES["filename"]["size"]); echo("<br>Dir: "); echo($_FILES["filename"]["tmp_name"]); echo("<br>Type: "); echo($_FILES["filename"]["type"]); } else { echo("Could not upload file"); } ?> В моем случае как раз и надо заполнить это The optional data can be the resource or information being posted to the server. This parameter can be NULL if there is no optional data to send. + длину посчитать а как это сделать я не знаю