WriteFile и большие файлы

Тема в разделе "WASM.BEGINNERS", создана пользователем Poster, 28 июл 2006.

  1. Poster

    Poster New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2006
    Сообщения:
    6
    Код (Text):
    1. .data
    2.  
    3. szresult   db    'C:\result.exe',0
    4.  
    5. .data?
    6.  
    7. szCommandLine  db 64 dup (?)
    8. size222 dd ?
    9. pMem    dd ?
    10. read dd ?
    11. hFile dd ?
    12. bWritten dd ?
    13.  
    14. .code
    15. Starter proc
    16.  
    17. invoke GetCL,1,ADDR szCommandLine
    18.  
    19.  
    20.  
    21. invoke CreateFile, addr szCommandLine, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL
    22. mov     hFile, eax
    23.  
    24. invoke GetFileSize, hFile, NULL
    25. mov size222,eax
    26. invoke GlobalAlloc,GMEM_FIXED,eax
    27. mov pMem,eax
    28. invoke  ReadFile, hFile, addr pMem, size222, addr read, NULL
    29. invoke  CloseHandle, hFile
    30.  
    31.  
    32. invoke CreateFile, addr szresult, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, NULL, NULL
    33. mov     hFile, eax
    34. invoke  WriteFile, hFile,  addr pMem,size222, addr bWritten, NULL
    35. invoke  CloseHandle, hFile
    36. invoke GlobalFree,pMem
    37.  
    38. ret        
    39.  
    40. Starter endp
    41.  
    42. start:
    43.  
    44. invoke Starter
    45. invoke ExitProcess, 0
    46.  
    47. end start
    Почему не работает с большими файлами?? >100 кб и тд
     
  2. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Попробуй вместо GMEM_FIXED - GMEM_MOVEABLE.
    Не забудь GlobalLock().
    И кроме того: почему "addr pMem"?
    Разве здесь нужен адрес адреса?
     
  3. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Poster
    Ты все еще юзаешь прошлый век? VirtualAllcEx уже в моде!
     
  4. Poster

    Poster New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2006
    Сообщения:
    6
    всем спасибо.. =) (убрал addr pMem и все заработало)