Глобальные переменные в dll

Тема в разделе "LANGS.C", создана пользователем axe_roma, 25 май 2010.

  1. axe_roma

    axe_roma New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2004
    Сообщения:
    93
    Адрес:
    Russia
    Пишу на С dll в которой надо заполнять список элементов, дак вот начало списка надо постоянно хранить, как объявить переменную указатель на структуру что бы при вызове экспорт функции указатель постоянно хранился в памяти?
     
  2. osox

    osox New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2009
    Сообщения:
    280
    можно сделать так в exe создаете указатель потом
    например вызываете AllocList(Item)? она создаст список
    заполнит его и вернет указатель
    на заполненный список или NULL потом как Вам станет
    не нужен список вызываете FreeList(Item)?
    Dll ничего не хранит за время жизни списка отвечаете Вы
    ну и конечно придется каждому интерфейсу которому
    нужен список передавать указатель одним из параметров

    но если Dll не просто заполняет список а еще выполняет
    какую то сложную обработку этого списка а при вызове из Dll
    функций возвращает информацию после обработки то
    тогда например так
    static GList *ItemList;
    в том модуле в котором со списком работаетe
    ну и блокировки написать если многопоточная обработка
    работать так же как с переменной с внутренним связыванием