![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передача 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