Небольшая проблема с памятью

Тема в разделе "WASM.BEGINNERS", создана пользователем masm32, 6 июн 2008.

  1. masm32

    masm32 New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2008
    Сообщения:
    147
    Сделал себе текстовый редактор на ричэдите, там эдитстримы всякие ..как положено. Когда открывается окно программы занимаемая память - 2.9 метра, открываю файл 500 кило - подскакивает до 8 метров. Отчётливо помню, что когда только сделал его - цифры были в 2 раза меньше, чего это я нахимичил?
    Но интересно - сворачиваю окно - разворачиваю память с 8 м умешается до 0,8 м. и потом по мере скроллинга немного увеличивается ...
    Что посоветуют уважаемые гуру? Дело конечно не в количестве занимаемой памяти , а в самом принципе - где-то что-то не в порядке?
    Диалог открытия вроде обычный

    Код (Text):
    1. invoke CreateFile,
    2. addr FileName,GENERIC_WRITE,FILE_SHARE_READ,
    3. NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0                         
    4. mov hFile,eax                                          
    5. mov editstream.dwCookie,eax
    6. mov editstream.pfnCallback,offset StreamOutProc
    7. invoke SendMessage,hwndRichEdit,EM_STREAMOUT,SF_TEXT,addr editstream                                   
    8. invoke SendMessage,hwndRichEdit,EM_SETMODIFY,FALSE,0
    9. invoke CloseHandle,hFile
    10. invoke SetWindowText,hwndRichEdit,0
    11. mov FileOpened,FALSE
    12.  
    13. invoke RtlZeroMemory,addr FileName,sizeof FileName     
    14. invoke RtlZeroMemory,addr ofn,sizeof ofn  
    15.                      
    16. mov ofn.lStructSize,sizeof ofn
    17. push hWnd
    18. pop ofn.hwndOwner
    19. push hInstance
    20. pop ofn.hInstance
    21. mov ofn.lpstrFilter,offset FilterString
    22. mov ofn.lpstrFile,offset FileName
    23. mov byte ptr [FileName],0
    24. mov ofn.nMaxFile,sizeof FileName
    25. mov ofn.Flags,OFN_FILEMUSTEXIST or OFN_HIDEREADONLY or OFN_PATHMUSTEXIST
    26. invoke GetOpenFileName,addr ofn
    27.                           .if eax==TRUE            
    28. invoke CreateFile,
    29. addr FileName,
    30. GENERIC_READ,
    31. FILE_SHARE_READ,
    32. NULL,
    33. OPEN_EXISTING,
    34. FILE_ATTRIBUTE_NORMAL,
    35. 0          
    36.                 .if eax!=INVALID_HANDLE_VALUE                                                                                        
    37. mov hFile,eax                  
    38. mov editstream.dwCookie,eax
    39. mov editstream.pfnCallback,offset StreamInProc
    40. invoke SendMessage,hwndRichEdit,EM_STREAMIN,SF_TEXT,addr editstream
    41. invoke SendMessage,hwndRichEdit,EM_SETMODIFY,FALSE,0
    42. invoke CloseHandle,hFile  
    43.                                                    
    44.          .else
    45. invoke MessageBox,hWnd,addr OpenFileFail,addr AppName,MB_OK or MB_ICONERROR
    46.          .endif                                                      
    47.          .endif