Как правильно использовать GlobalUnlock.

Тема в разделе "WASM.WIN32", создана пользователем Vjacheslav, 18 янв 2005.

  1. Vjacheslav

    Vjacheslav New Member

    Публикаций:
    0
    Регистрация:
    22 дек 2004
    Сообщения:
    11
    Подскажите пожалуйста как правильно использовать

    функцию GlobalUnlock. В MSDN написано что надо

    передавать handle to the global memory object,

    а в туториалах ICZELION что указатель на

    память.Или там опечатка.
     
  2. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Читаем Петцольда, там главу про работу с Clipboard'ом
     
  3. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    GlobalUnlock работает с указателем. С хэндлом работает GlobalFree (это в случае GMEM_MOVEABLE).

    Если использовался флаг GMEM_FIXED, GlobalUnlock не нужен. В этом случае для освобождения используй GlobalFree с параметром pointer, полученным от GlobalAlloc
     
  4. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Vjacheslav

    Ты бы лучше спросил, а нужно ли вообще использовать GMEM_MOVEABLE и Lock\Unlock в Win32.

    Насколько я понимаю кроме мороки они ничего не дают, т.к. это пережитки прошлого для обратной совместимости.



    Читаем у Microsoft'а:

    <font size=3>"In earlier versions of Windows, movable memory objects were important for memory management. They enabled the system to compact the heap when necessary to make space available for other memory allocations. By using virtual memory, the system is able to manage memory by moving pages of physical memory without affecting the virtual addresses of the processes using the pages. When the system moves a page of physical memory, it simply maps the process's virtual page to the new location of the physical page. Movable memory is still useful for allocating discardable memory. When the system needs additional physical storage, it can use a "least recently used" algorithm to free discardable memory that is not locked. Discardable memory should be used for data that is needed infrequently and can be regenerated easily"</font><!--size-->
     
  5. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    leo прав - GlobalXXXXX & LocalXXXXX анахронизм, сейчас нужно использовать или HeapXXXXX, или VirtualXXXXX.