Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Переменные и массивы типа string в DLL без ShareMem [D7, 95/98, XP]


chai ©   (2006-04-24 14:17:00) 

Доброго времени суток!
Могу ли я пользоваться локальными переменными и массивами типа string в
экспортируемой процедуре DLL, не ссылаясь на модуль ShareMem?
Спасибо.


KSergey   (2006-04-24 15:15:00) [1]

> Сергей М. ©   (24.04.06 15:08) [4]
> С чего бы вдруг ?
> WideString в этом плане накладывает точно такие же ограничения,
>  как и AnsiString

Нет.
Там есть "хитрость". Delphi для их "манажирования" использует виндовский менеджер памяти от COM. Т.е. для них используется глобально общий менеджер памяти.
А потому их можно свободно гонять туда-сюда.


Сергей М.   (2006-04-24 15:08:00) [2]


> KSergey ©   (24.04.06 15:02) [3]


С чего бы вдруг ?
WideString в этом плане накладывает точно такие же ограничения, как и AnsiString


KSergey   (2006-04-24 15:02:00) [3]

Или пользовать widestring.
Тогда вообще без ограничений.


Сергей М.   (2006-04-24 14:28:00) [4]


> Могу ли


Свободно.

см. [1] - можешь даже обмениваться сабжем с вызывающим модулем безо всяких ShareMem, если DLL и вызывающий модуль собраны в одной и той же версии Делфи с опцией линкера Build With Run-Time Packages. Конечно если же речь при этом не идет о передаче в кач-ве результатов лок.переменных по ссылке.


MBo   (2006-04-24 14:22:00) [5]

да, если не обмениваешься ими с основной программой.


Наверх

Титульная страница Поиск, карта сайта Написать письмо