Почему переполнение?

Тема в разделе "WASM.BEGINNERS", создана пользователем pikador, 12 сен 2007.

  1. pikador

    pikador New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2007
    Сообщения:
    101
    Код (Text):
    1. dirs  equ [ebp-304]                                    ;сюда выплевывается путь к найденному файлу
    2.                 .................................................
    3. outf proc
    4.         push 0
    5.         push FILE_ATTRIBUTE_ARCHIVE
    6.         push OPEN_EXISTING
    7.         push 0
    8.         push FILE_SHARE_WRITE
    9.         push GENERIC_WRITE
    10.         push dirs                                  ; Если передать типа "123" -- ошибка, если dirs -- вылетает переполнение
    11.         call CreateFileA@28
    12.                 .................................................
    Умный народ подскажите что не так. Если мало инфы написал-- что еще дать?
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    что за переполнение
     
  3. pikador

    pikador New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2007
    Сообщения:
    101
    такое
     
  4. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Код (Text):
    1. push GENERIC_WRITE
    2. lea eax, [ebp-304]
    3. push eax
    4. call CreateFileA@28
     
  5. pikador

    pikador New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2007
    Сообщения:
    101
    Спасиб, так даже удобней)

    сорри что не все привел в логе сразу, бага дальше.
    SetFilePointer@16 возвращает 0(ошибка) -- Что ей не нравится?
    хендл рабочий, а остальные параметры по нулям -- указатель ставим в начало файла.

    Код (Text):
    1. hFile DWORD ?
    2.                 ..................................
    3.         push 0
    4.         push 0 
    5.         push OPEN_EXISTING
    6.         push 0
    7.         push FILE_SHARE_WRITE
    8.         push GENERIC_WRITE
    9.         lea eax, [ebp-304]
    10.                 push eax
    11.         call CreateFileA@28
    12.         mov  hFile,eax
    13.         cmp eax,INVALID_HANDLE_VALUE
    14.         je errorr                                  ; НЕ прыгает на ошибку--все ок.        
    15.  
    16.         mov edi,1
    17.         lea eax,MASKA
    18.         call write                                 ;выводит
    19.  
    20.         push 0
    21.         push 0
    22.         push 0
    23.         push hFile
    24.         call SetFilePointer@16
    25.         cmp eax,0
    26.         je errorr                                  ;прыгает на ошибку
    27.        
    28.         mov edi,1
    29.         lea eax,text
    30.         call write                                ; уже не выводит
    31.        
    32.         push 0
    33.         push SizeWrite
    34.         push 1
    35.         push offset new_text
    36.         push hFile
    37.         call WriteFile@20
    38.        
    39.         push hFile
    40.         call CloseHandle@4
    41.  
    42.      errorr:
     
  6. dimonn

    dimonn New Member

    Публикаций:
    0
    Регистрация:
    5 мар 2006
    Сообщения:
    38
    Адрес:
    Sim-City
    Юзай GetLastError+FormatMessage, все сразу станет понятно
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    ну дык посмотри last error
     
  8. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    msdn:
    INVALID_SET_FILE_POINTER == -1

    так что, все она правильно возвращает.
     
  9. pikador

    pikador New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2007
    Сообщения:
    101
    СПС! Если бы не вы, никогда б не справился! Особенно спасиб rmn!
    Дело в том что у меня книжка замечательная "Справочник по функциям Win32 API", там вот написано что в случае ошибки вернет 0.
    =)
     
  10. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    мсдн иногда читать полезно ;)