Под что отводиться память?

Тема в разделе "WASM.BEGINNERS", создана пользователем Shooshpanchik, 25 фев 2008.

  1. Shooshpanchik

    Shooshpanchik Member

    Публикаций:
    0
    Регистрация:
    29 сен 2006
    Сообщения:
    117
    Взял простейший Hello World в МессагБоксе, запускаю, смтрю он занимает 1.5 метра в таскменеджере, куда ему столько то ?

    И еще вопросик, Допустим мое приложение не активно, но ему срочно нужно внимание пользователя, в винде такие начинают мигать иконкой в таскбаре, а как это делаеться програмно ?
     
  2. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    FlashWindow()
     
  3. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Память выделяется не только под саму программу. В частности, на её адресное пространство отображаются различные библиотеки подсистемы Win32 (kernel32.dll и тому подобные).
     
  4. domov0i

    domov0i New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    74
    function FlashWindow(Wnd: HWnd; Invert: Bool): Bool;

    Wnd: Окно, которое делается мигающим
    Invert: Не нуль, если мигание, 0 - для возврата к исходному состоянию (для пиктограмм игнорируется).

    Возвращаемое значение: не нуль, если окно до вызова было активным; 0 - в противном
    случае.

    функция находится в user32.dll
     
  5. Shooshpanchik

    Shooshpanchik Member

    Публикаций:
    0
    Регистрация:
    29 сен 2006
    Сообщения:
    117
    Пасиб помогло, а вот чем можно проверить все ли я я там позакрывал за собой (по выходу из программы), все ли хендлы освободил ?
     
  6. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    они сами убьются
     
  7. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Shooshpanchik
    посмотри ещё тут, авось поможет
     
  8. Shooshpanchik

    Shooshpanchik Member

    Публикаций:
    0
    Регистрация:
    29 сен 2006
    Сообщения:
    117
    ну я так и думал что по hinst винда все вычищает. А если я под DirectX что нить пишу, там была debug версия она сообщала что не все закрыто, это не страшно ?
     
  9. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    по какому hinst, простите? +)
    Винда сама уничтожает адресное пространство и таблиццу хендлов при завершении процесса
     
  10. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Да, еще забыл сказать - не беспокойся насчет 1.5 метров, это виртуальная память. Физической оно занимает значительно меньше в связи с тем, что физические страницы системных длл разделяются между процессами и они используют одну копию. Правда, до тех пор, пока ты не захочешь ее модифицировать. Тогда тебе дадут частную копию страницы
     
  11. Shooshpanchik

    Shooshpanchik Member

    Публикаций:
    0
    Регистрация:
    29 сен 2006
    Сообщения:
    117
    а по тому что GetModuleHandle выдает, я не совсем ассемблерщик, меня прет от С-- там у нас есть hThisInst его везде пихать надо, хотя и NULL проканывает. Я ранее Delphiнистом был, а счас хочу быстро и малопрожорливо, хотя изначально пишу алгоритм на дельфях, а потом мучаюсь с переводом
     
  12. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    hInstance нужно было в версиях Windows 9x и более не используется. Можно передавать везде NULL.
    Правда ты путаешь hInstance и hModule. hModule используется для идентификации образа и представляет собой базовый адрес его загрузки. GetModuleHandle(0) возвращает как раз hModule. Используется, например, в том же LoadResource.
     
  13. Shooshpanchik

    Shooshpanchik Member

    Публикаций:
    0
    Регистрация:
    29 сен 2006
    Сообщения:
    117
    вот кусочек startup.h--
    #ifdef __clearpost
    @CLEARPOSTAREA(0);
    hThisInst=GetModuleHandleA(EAX);
    #else
    hThisInst=GetModuleHandleA(0);
    #endif //__clearpost
    #ifdef __CONSOLE__
    hStdOut=GetStdHandle(-11);
    #endif
     
  14. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Shooshpanchik
    MSoft
    Убиться-то убьются, но лучше привыкать всё освобождать своими ручками. Такая привычка изрядно помогает в борьбе с утечками памяти ;)
     
  15. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    Никогда не понимал, почему после CreateWindow/DestroyWindow остаются открытыми несколько user-хендлов и около 8-10 gdi-хендлов. Может знает кто откуда или что с этим сделать?
     
  16. Shooshpanchik

    Shooshpanchik Member

    Публикаций:
    0
    Регистрация:
    29 сен 2006
    Сообщения:
    117
    А как это увидеть мона ?
     
  17. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    Shooshpanchik
    taskmgr
     
  18. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    Лучше тогда уже Process Explorer от Руссиновича - в нем столько всякого бесполезного посмотреть можно :)