wsprintf подскажите

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

  1. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    only
    Код (Text):
    1. include 'win32ax.inc'
    2. .code
    3.   start:
    4.         sub esp,1024
    5.         mov ebp,esp
    6.         invoke  wsprintf,ebp,"1\n2"
    7.         invoke  MessageBox,HWND_DESKTOP,ebp,"...",MB_OK
    8.         invoke  ExitProcess,0
    9. .end start
    Выводит "1\n2".


    "C Language Reference
    C Character Constants"
    Вам буква "C" о чем нибудь говорит? При чем тут АПИ?!
     
  2. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    wsprintf не обрабатывает \r\n
     
  3. only

    only New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2008
    Сообщения:
    147
    Обрабатывает.
    GoldFinch прав, хотя я и не проверял, да и не нужно, пример это явно доказывает.
     
  4. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Всмысле я имею ввиду что она не интерпретирует символы \r\n как перевод строки...
     
  5. only

    only New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2008
    Сообщения:
    147
    K10
    Да, с этим увы нельзя не согласиться :)
     
  6. n1kt0

    n1kt0 Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2007
    Сообщения:
    160
    в общем проблема такова:
    я записал имя апишки, далее я вычислил конец апи в буфере и нашел CRC, далее я пытаюсь записать CRC в буффер, но при:
    zsFormatCRC db 'CRC: %x',0xD,0xA в файле потом отображается следующее:
    CRC: и квадратики.Так же пробовал просто записывать [CRC] в хвост апи в буфере т.е с помощью Lodsb,тагда в хекосе все как бю правильно. т.е в шестнадцетеричном виде все нормал, а в обычном виде тоже кракозябры. Что посоветуете ? как правильно хекос записать в файл 4 байта чтобы они именно так отображались в файле ?
     
  7. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    n1kt0
    Покажи кусок программы, а то чудеса какие-то рассказываешь :))
    и строку формата тоже нужно нулём завершать
     
  8. n1kt0

    n1kt0 Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2007
    Сообщения:
    160
    да кусок показать не могу, но выглядит примерно так, как ты описал:\

    .data
    zsFormatCRC db 'CRC: %x',0xD,0xA,0
    zsFormatAPI db 'API: %s',0x20,0
    CRC dd ?
    apiname
    buffer db 64 dup (?)

    .code
    ...
    ...
    ;CRC мы получули, apiname тоже,записали apiname в общий буфер и собственно теперь формируем ;строку CRC, чтобы потом записать ее в хвост apiname в общем буфере:
    wsprintf,buffer,zsFormatCRC,CRC ;в buffer позиция хвоста записанной apiname
    потом записываем буфер в файл и созерцаем то, о чем я говорил
     
  9. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Код (Text):
    1. .data
    2.    fileName db 'test.txt', 0
    3.    szFormat db 'API: %s', 9, 'CRC: 0x%x', 13, 10, 0
    4.    apiName  db 'MessageBox', 0
    5.    CRC      dd 12345h
    6. .data?
    7.   h_File    dd ?
    8.   size_File dd ?
    9.   szRezult  db 1024 dup (?) ; Строка с результатами
    10. .code
    11. start:
    12.     invoke CreateFile, addr fileName, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0
    13.     mov [h_File], eax
    14.     mov edi, 5
    15.     @@:
    16.        invoke wsprintf, addr szRezult, addr szFormat, addr apiName, [CRC]
    17.        invoke WriteFile, [h_File], offset szRezult, eax, addr size_File, 0
    18.        sub edi, 1
    19.     jnz @B
    20.     invoke CloseHandle, [h_File]
    21.    invoke ExitProcess, NULL
    22. end start
     
  10. n1kt0

    n1kt0 Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2007
    Сообщения:
    160
    мдя, а чего ж у меня неработает-то...
     
  11. n1kt0

    n1kt0 Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2007
    Сообщения:
    160
    вопрос:
    szFormat db 'API: %s', 9, 'CRC: 0x%x', 13, 10, 0
    почему 9 ? а не 20 ?
     
  12. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    9 - tab
    что такое 20 (0x14) я хз
     
  13. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    n1kt0
    поправь чтобы было как у меня :) - только не нужно включать весь чужой пост в ответы тут за это банят.