У меня есть несколько массивов, которые заданы так: Код (Text): RespPrefix db "&rsp=",0 RespPrefixSize db 5 HTMLSpace db " ",0 HTMLSpaceSize = ($-HTMLSpace) HTMLBody db "HTTP/1.1",13 db "Host: ",13 db "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1;" db " ru; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12",13 db "Accept: text/xml,application/xml,application/xhtml+xml," db "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",13 db "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3",13 db "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7",13 db "Keep-Alive: 1000",13 db "Connection: keep-alive",13 db "If-Modified-Since: Mon, 23 Oct 2006 11:20:40 GMT",13 db "Cache-Control: max-age=0",13,10,13,10, 0 HTMLBodySize = ($-HTMLBody) И когда я использую функцию Код (Text): invoke CreateFile, addr TESTfile, GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0 mov filehandle,eax invoke WriteFile, filehandle, addr RespPrefix , RespPrefixSize, addr bytecount,0 invoke CloseHandle,filehandle то в файле получаю Код (Text): 1.1 H Что явялется 5 байтами из HTMLBody массива. ПОЧЕМУ так происходит я не могу понять. у кого-нить есть идеи? Спасибо.
Судя по твоему WriteFile - ты должен получить в файле RespPrefix видать ты какой-то код не тот выложил
lust Во-первых, не стоит использовать RespPrefixSize db 5 вместо RespPrefixSize dd 5 Во-вторых, ИМХО, масм - кривой
да, тут еще один момент. Фарш наступает после выполнения кода Код (Text): mov eax, HTMLBodySize mov edx, HTMLheaderSize add eax, edx add eax, HTMLSpaceSize mov RequestHeaderSize,eax mov eax,offset HTMLheader mov pHTMLheader,eax mov eax,offset HTMLSpace mov pHTMLSpace,eax mov eax,offset HTMLBody mov pHTMLBody,eax invoke lstrcat ,pHTMLheader,pHTMLSpace invoke lstrcat ,eax,pHTMLBody mov pRequestHeader,eax То есть переменные в коде не меняются, но всё равно всё к чёрту слетает. почему не понятно =(
разбрался Вся жесть, что lstrcat тупо сшивает массивы, и указаетли все херятся. то есть массивы накладываются тогда друг на друга.