Сам себе Iczelion

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

Метки:
  1. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    Semiono
    Но "коммандная строка, grep, sed, regexp, скрипты, файлы" мне не интересно, увы... :dntknw:
     
  2. bizdon

    bizdon Member

    Публикаций:
    0
    Регистрация:
    7 апр 2009
    Сообщения:
    86
    здравствуйте!
    урок 13 "Memory Mapped файлы" - не работает: файл не загружается в edit и, соответственно, нечему сохраняться. Оно и не удивительно, ведь в примере нет необходимых функций для этого. Ключевое место (открытие-сохранение) переписал:
    Код (Text):
    1.     .if ax==IDM_OPEN
    2.                 invoke GetOpenFileName, ADDR ofn
    3.                     .if eax==TRUE
    4.                         invoke CreateFile,addr buffer,GENERIC_READ or GENERIC_WRITE,\
    5.                         FILE_SHARE_READ or FILE_SHARE_WRITE,0,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,0
    6.                         mov hfile,eax
    7.                         invoke CreateFileMapping,hfile,0,PAGE_READWRITE ,0,0,0
    8.                         mov hmapfile,eax
    9.                         invoke MapViewOfFile,hmapfile,FILE_MAP_ALL_ACCESS   ,0,0,0
    10.                         mov hmvfile1,eax
    11.                         invoke SendDlgItemMessage,hWnd,IDC_EDT1,WM_SETTEXT,0,hmvfile1
    12.                             invoke UnmapViewOfFile,hmvfile1
    13.                             invoke CloseHandle,hmapfile
    14.                             invoke CloseHandle,hfile
    15.                     .endif
    16.                     mov eax,wParam
    17.                 .elseif ax==IDM_SAVE    
    18.                     mov  ofn.Flags,OFN_LONGNAMES or OFN_EXPLORER or OFN_HIDEREADONLY
    19.                     invoke GetSaveFileName,addr ofn
    20.                         .if eax==TRUE
    21.                         invoke CreateFile,addr buffer,GENERIC_READ or GENERIC_WRITE,FILE_SHARE_READ or FILE_SHARE_WRITE,0,CREATE_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,0
    22.                             mov hfile ,eax
    23.                             invoke GetProcessHeap
    24.                             mov hheap,eax
    25.                             invoke HeapAlloc,hheap,HEAP_ZERO_MEMORY,MEMSIZE
    26.                         mov pmemory,eax
    27.                             invoke SendDlgItemMessage,hWnd,1004,WM_GETTEXT,MEMSIZE-1,pmemory
    28.                             invoke WriteFile,hfile,pmemory,eax,ADDR SizeReadWrite,NULL
    29.                             invoke HeapFree,hheap,0,pmemory
    30.                             invoke CloseHandle,hfile   
    31.                         .endif
    возникли следующие затруднения:
    1. не получается выделить память для сохранения текста из edit с помощью MMF. Делаю аналогичное выделение, а текст в файл не пишется:
    Код (Text):
    1. invoke CreateFileMapping,hfile,0,PAGE_READWRITE ,0,0,0
    2.                         mov hmapfile,eax
    3.                         invoke MapViewOfFile,hmapfile,FILE_MAP_ALL_ACCESS   ,0,0,0
    4.                         mov hmvfile1,eax
    5.                         invoke SendDlgItemMessage,hWnd,IDC_EDT1,WM_GETTEXT,0,hmvfile1
    6.                         invoke WriteFile,hfile,hmvfile1,eax,ADDR SizeReadWrite,NULL
    7.                             invoke UnmapViewOfFile,hmvfile1
    8.                             invoke CloseHandle,hmapfile
    9.                             invoke CloseHandle,hfile
    Как правильно работать с памятью: открывать-закрывать при чтении и записи или один раз открыть, прочитать файл, послать его в edit, очистить память и снова её использовать? Как читать-писать большие (несколько мб) файлы?
     
  3. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    bizdon
    урок 13 "Memory Mapped файлы" прототип взят из классического курса Iczelion'a т.е. и в Iczelion's tut13 не смотря на то что в меню есть раздел "File->Open" но файлы там тоже не открываются. А вот по открытию файлов и создание подобия Notepad это уже идет в уроках 33-35 "Контрол RichEdit"
     
  4. bizdon

    bizdon Member

    Публикаций:
    0
    Регистрация:
    7 апр 2009
    Сообщения:
    86
    Mikl___ - спасибо! здоровьица вам и крепких нервов! (говорят, что обливание холодной водой их укрепляет...:)

    урок 13 "Memory Mapped файлы" у Iczelion'a не работает и не учит использовать MMF. Давно сие надо исправить, к чему я прилагаю свои корявые лапы.

    п.с. аттач по мотивам..
     
  5. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    bizdon
    Спасибо за аттач и поддержку! Появилось несколько новых идей, надеюсь в скором времени опубликовать их на сайте...
     
  6. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    774
    Mikl___, можно ли SysTreeView32 анчек зделать? Или лучше туда и не соваться а ассемблером?
    Блн, какой противный контрол! 'Show shadows under mouse pointer' даже не видно Spy утилитами.
    Вообщим надо сбросить галку http://d.imagehost.org/0807/Snap4.png
    Или забыть об этом?
    Кстати, 4-й урок IcZelone для фасма исчу.
    :|

    Нашёл! - invoke SystemParametersInfo,0x1025,FALSE,NULL,SPIF_UPDATEINIFILE
    :)
     
  7. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    Semiono
    4-ые уроки на ФАСМе [​IMG]
     
  8. edemko

    edemko New Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2009
    Сообщения:
    454
    Mikl___
    Код (Text):
    1. proc p1
    2.   locals
    3.     v1 POINT 1,2
    4.     v2 dd 3
    5.     v3 dd ?
    6.     v4 RECT 1,2,3,4
    7.   endl
    8.         mov     eax,[v1.x]
    9.         mov     eax,[v2]
    10.         mov     eax,[v3]
    11.         mov     eax,[v4.left]
    12.         ret     0
    13. endp
     
  9. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    Mikl___
    Вы бы могли выклдывать всё где-нибудь централизованно? А то лазить по 13 страницам форума как-то неудобно.
    Вы бы отредактировали свой первый пост и поместили бы туда всё по группам.
     
  10. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    774
    Ищу ComboBox кнотрол, желательно с привязкой картинки загруженной на окно.
    Типа:
    ComboBox("слева") | X=0; Y=0
    ComboBox("справа") | X=80; Y=0
     
  11. edemko

    edemko New Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2009
    Сообщения:
    454
    Хочу ДОС-версию :dntknw:
     
  12. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    ДОС-версию чего? Уроков Iczelion'a? :) Или Semiono's ComboBox кнотрол?
     
  13. edemko

    edemko New Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2009
    Сообщения:
    454
    iczelion :dntknw:

    ред:
    Код (Text):
    1. dpmi
    2.   enu: http://ftp.cc.uoc.gr/mirrors/openwatcom/devel/docs/dpmi1_0.txt
    3.   enu: http://ftp.cc.uoc.gr/mirrors/openwatcom/devel/docs/dpmi10.pdf
    4.  
    5. helpassm by Dan Rollins
    6.   rus(exe): http://www.kalashnikoff.ru/Assembler/prog/helpassm.exe
    7.  
    8. Справочник программиста на персональном компьютере фирмы IBM by Роберт Журден
    9.   rus(htm/chm): http://www.kalashnikoff.ru/Assembler/prog/jourdain.exe
    10.   rus(txt): http://bookaudi.ru/savered.php?file=93630
    11.  
    12. 1st stepts towards system programming under ms-dos by for-h@yandex.ru.pdf
    13.   enu: http://www.fysnet.net/docs/FrstStps.pdf
    14.  
    15. Advanced MS-DOS Programming by Ray Duncan.pdf
    16.   enu: http://www.ece.ul.ie/homepage/tom_newe/Modules/CE4204/advdos-Duncan.pdf
    17.  
    18. ну и любая хорошая книга
     
  14. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    Рецидив. В аттаче 33 и 34 переделанные уроки Iczelion'a "Контрол Richedit: Основы" и "Операции над текстом в RichEdit", сорц, RC и ЕХЕ. 4484 и 8340 байт vs 6656 и 10752 байт в оригинале
     
  15. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    Удаляем лишние байты. Урок 33 (4351 байт) и урок 34 (8160 байт). В аттаче сорцы, экзе и capito_res.asm. Собираются батником со следующим содержанием
    Код (Text):
    1. @echo off
    2. cls
    3. set filename=%1
    4. if exist %filename%.exe del %filename%.exe
    5. ml /AT /c /Cp /Gz /I\masm32\include %filename%.asm
    6. Link16 /t %filename%.obj ,%filename%.exe;
    7. del %filename%.obj
    ml и Link16 выбраны из старых, тех что умели собирать COM-файлы
     
  16. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    урок 35 подсветка синтаксиса (12343 байта) в аттаче, сорц, ехе и файл capito_res1.asm
     
  17. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    Mikl___
    не пойму, почему вы под этот цикл себе вику не заведете? трак, например, имеет вполне приличную вику с колоризатором кода и кучей расширений-дополнений. вроде, даже скачать-в-виде-пдф видел. ей ей лучше будет.
    еще, вот такая штука, возможно, интересна будет.
     
  18. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    24 урок с DLL в аттаче сорцы, батник для сборки, файлы capito_res.asm, capito_dll1.asm и готовая DLL и ЕХЕ. Размер DLL 1060 байт, размер ЕХЕ 1862 байта. Под WinXP
     
  19. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    Извращаемся с секцией импорта
    В аттаче: pe_06a.htm и gif к нему
    сорц и ехе 3-его урока, созданного при использовании ml и link
    сорц и ехе tut03
    батники которыми собирались win и tut03
    ml и link16 которые понимают ключ /tiny
     
  20. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Mikl___
    Шайтан!
    508 byte!
    Класс!
    Тут опечатка маленькая.
    Спасибо!

    PS. Так на первый взгляд текст tut03.asm уже больше на fasm смахивает )))