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

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

Про DLL и строки. [D2005, XP]


Страницы:   1 2

Vovan#1 ©   (2006-09-15 22:27:00) 

Вопрос такой.

Есть ли проблемы с памятью при передаче строк в функции и процедуры DLL?
Есть ли какие-то особенности при использовании ShortString как возвращающегося значения и можно ли просто использовать тип, вроде TMyString = String[20]?


Германн   (2006-09-16 16:11:00) [21]


> Правильный ответ:
> ДА, ЕСТЬ. Когда добавляешь stdcall, то не работает.
>

Неужели не работает?

Правильный вопрос: Что такое stdcall?
Вот так и надо было спрашивать, а не мутить воду короткими строками!


Vovan#1   (2006-09-16 12:48:00) [22]

Чтоб вас...

Вопрос:
>Есть ли какие-то особенности при использовании ShortString как возвращающегося значения

Правильный ответ:
ДА, ЕСТЬ. Когда добавляешь stdcall, то не работает.

Рубрика же "Начинающим".


Германн   (2006-09-16 01:05:00) [23]


> zamtmn ©   (16.09.06 00:43) [6]
>
> >>В этом случае лучше обратить свой взор на тип PChar
> в этом случае следует обратить взор на тип который заявлен
> в объявлении импортируемой процедуры
>

По сабжу да. А по моему контексту PChar.


zamtmn   (2006-09-16 00:43:00) [24]

>>В этом случае лучше обратить свой взор на тип PChar
в этом случае следует обратить взор на тип который заявлен в объявлении импортируемой процедуры


Германн   (2006-09-16 00:32:00) [25]


> Везде говорится о проблемы передачи строки из DLL в программу
> (и по той ссылке тоже). Я же хотел уточнить, распространяется
> ли это дело и на обратную операцию.

Направление передачи не имеет значения. Но все проблемы связаны именно с "длинными строками" - тип AnsiString и тип String в Д2 и выше при включенной опции компиллятора {$H+}.
Если ограничишься типом ShortString проблем не будет.
Опять же если и программа и dll написаны в Дельфи, то и тут проблем не будет, если вдумчиво прочитаешь комментарий, который Дельфи вставляет в заготовку библиотеки и выполнишь всё, что там сказано.
И последнее. Если программа или длл скомпиллированы продуктами разных производителей, то проблемы будут при использовании и AnsiString и ShortString!
В этом случае лучше обратить свой взор на тип PChar.


zamtmn   (2006-09-15 23:39:00) [26]

да, распространяется


Vovan#1   (2006-09-15 23:32:00) [27]

> http://delphimaster.ru/cgi-bin/forum.pl?id=1157920671&n=18

Везде говорится о проблемы передачи строки из DLL в программу (и по той ссылке тоже). Я же хотел уточнить, распространяется ли это дело и на обратную операцию.


zamtmn   (2006-09-15 23:09:00) [28]

http://delphimaster.ru/cgi-bin/forum.pl?id=1157920671&n=18


Palladin   (2006-09-15 22:31:00) [29]


> Есть ли какие-то особенности при использовании ShortString
> как возвращающегося значения и можно ли просто использовать
> тип, вроде TMyString = String[20]?

1 Нет
2 Да


> Есть ли проблемы с памятью при передаче строк в функции
> и процедуры DLL?

Будут, если не укажешь в приложении и библиотеке первым используемым модулем ShareMem.


Страницы:   1 2

Наверх

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