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

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

Передача string в dll [D5, D7, Win2k]


Kost ©   (2004-07-20 14:54:00) 

Ребята,подскажите, пожалуйста,
почему при передаче параметров типа
string в dll (Uses ShareMem - используется на первом месте)
выдаются различные критические ошибки, типа Access Violation
at address. Спасибо.


GEN++   (2004-07-20 18:47:00) [1]

Передаваемый string должен быть "статическим" , т.е.
должен быть объявлен вне функции или процедуры.
Я на эти грабли недавно наступил - но победил вышесказанным.


Суслик   (2004-07-20 16:38:00) [2]

Можно


Anatoly Podgoretsky   (2004-07-20 16:17:00) [3]

Можно


Digitman   (2004-07-20 15:26:00) [4]


> Kost ©   (20.07.04 15:18) [4]
> То есть c dll работать нельзя ?


можно


Digitman   (2004-07-20 15:23:00) [5]


> 3 - отпадают точно


на основании чего такое самоуверенное утверждение ?


> Вооюще какие-нибудь dll работают корректно
> с string?


какие-нибудь работают
конкретно те, которые реализуют корректный алгоритм, учитывающий особенности работы с дин.типами данных, передаваемых в кач-ве параметров/результата между PE-модулями, разработанными в борландовских средах


Kost   (2004-07-20 15:18:00) [6]

>Digitman ©   (20.07.04 15:02) [2]

То есть c dll работать нельзя ?


Kost   (2004-07-20 15:06:00) [7]

>1)Потому что ShareMem должен быть и в приложении, и в dll
>2)Потому что версии Delphi разные
>3)Потому что ошибка в программе, и она никак не связана наличием dll

2,3 - отпадают точно Delphi - 7.
Подцепили ShareMem в приложение - выдает неопределенный
Runtime Error. Вооюще какие-нибудь dll работают корректно
с string?


Digitman   (2004-07-20 15:02:00) [8]

4) потому что согашения о вызове не соблюдены

убери все свои ShareMem, stdcall и иже с ними, собери оба проекта с опцией использования ран-тайм пакетов и не мучайся более


Sandman25   (2004-07-20 14:58:00) [9]

1)Потому что ShareMem должен быть и в приложении, и в dll
2)Потому что версии Delphi разные
3)Потому что ошибка в программе, и она никак не связана с наличием dll


Наверх

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