в общем не пойму как сделать чтобы после wsprintf строка имела вид "stroka\n" т.е перевод каретки осуществялся вот так неполучается: Code (Text): __createfile: mov ebp,esp push NULL push FILE_ATTRIBUTE_NORMAL push CREATE_ALWAYS push NULL push FILE_SHARE_READ+FILE_SHARE_WRITE push GENERIC_READ+GENERIC_WRITE push files call [CreateFile] push eax ;[ebp-0x4] hFile __writefile: [b]invoke wsprintf,message,f,eax[/b] invoke WriteFile,dword [ebp-0x4],message,0xc,temp,NULL exit: push NULL call [ExitProcess] section '.data' data readable writable files db 'c:\myfile.txt',0 buffer rb 0x16 message db 'test_my_file',0 temp dd ? [b]f db "%s\n"[/b] section '.idata' import readable writable library kernel32,'KERNEL32.DLL',\ user32,'USER32.DLL' ;include '%fasminc%\API\kernel32.inc' ;include '%fasminc%\API\user32.inc' подскажите как сделать ?
1) очень полезный совет: сделай буфер message больше 2) если форматная строка у тебя "%s\n", то предполагается, что %s - строка, а у тебя это либо хэндл открытого CreateFile'ом файла, либо INVALID_HANDLE_VALUE.
La_plaza я не понял, что ты хотел получить в приведенном тобой коде, поэтому, естественно, не могу написать правильный вариант. Если волнует вопрос использования wsprintf, то вот: Code (Text): invoke wsprintf,buf,format,str buf rb 1024 format db "%s",13,10,0 str db "hello world",0
http://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8
нда.... даже хз что ответить на вопрос "откуда вы берете эти 13,10" Подозреваю были времена, когда программисты знали все аски-коды от управляющих до псевдографики. И был дос... и интерфейсы были другие... А теперь "откуда вы берете эти 13,10". Из стандартной ASCII-таблицы они берутся.
а открыть любой текстовый файл в хекс-просмотре не судьба наверное? там видно что перевод строки осуществляется двумя символами 0x0D и 0x0A соответственно для перевода строки нужно ставить "\n\r"
так что, сама ф-ция wsprintf только умеет строку представлять в разных видах т.е числовом, символьном и тд, а переводы каретки и тд она неумеет делать чтоли ? хм
вовсе не обязательно просто TextOut не поддерживает многострочность, при сохранении в файл или MessageBox всё нормально.