![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 11.10.2007
Сообщений: 384
|
![]()
Доброе время суток!
У меня длл-ка не выходит не как( Все ошибки вылетают, и не могу понять в чём тут дело. Код:
Код:
![]() Помогите пожалуйста разобраться! С уважением, Volkogriz!
Не количеством плюсов измеряется репутация человека...!
Последний раз редактировалось Stilet; 06.01.2013 в 18:51. |
![]() |
![]() |
![]() |
#2 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Вы когда библиотеку создали - там большой такой комментарий не читали ?? Он гласит, что для использования строк string для вызовов подпрограмм между программой и библиотекой надо прописать модуль ShareMem первым в проект приложения и библиотеки.
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
phomm, да не нужно оно. ТС, замени все строки на WideString.
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 11.10.2007
Сообщений: 384
|
![]()
не выходит(
ошибка опять( exception e out of memory in module Чего не так то ( С уважением, Volkogriz!
Не количеством плюсов измеряется репутация человека...!
|
![]() |
![]() |
![]() |
#5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Если в ДЛЛ используется типа String то нужно подключать модуль ShareMem
Я бы лично строки передавал через TStringStream или TStringList. Надежнее.
I'm learning to live...
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 11.10.2007
Сообщений: 384
|
![]()
Не пашет всё туже ошибку выдаёт(
Не количеством плюсов измеряется репутация человека...!
|
![]() |
![]() |
![]() |
#7 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]()
Внимание, правильный ответ: забыт stdcall при импорте. Всем двойки! Несите дневники.
В разработке: воспроизводственный контур ИТ
|
![]() |
![]() |
![]() |
#8 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Vapaamies, когда в коде при построчном прочтении видишь явную ошибку - то указываешь её и дальше портянку не смотришь. Тем более, что скрин говорящий и указывает на ошибку в неверном обращении к памяти, что бывает как раз при работе со строками.
А stdcall - он конечно тут влияет, но в общем случае, это более тонкая ошибка, ведь аргументов может и не быть, или неважен их порядок или способ передачи, а ошибка со строками - она на поверхности, и пока она гарантировано не устранена(крики "не работает" не есть подтверждение что ошибку исправили верно, был бы код или сам проект - тогда да), никто и не копал поэтому глубже. Надеюсь, мне простят лёгкий оффтоп. |
![]() |
![]() |
![]() |
#9 | |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]() Цитата:
Пусть теперь Volkogriz отпишется и нас рассудит. И ответит заодно, зачем он скриншот отзеркалил.
В разработке: воспроизводственный контур ИТ
|
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
phomm, если не указан модификатор при импорте/экспорте из DLL, компилятор берет порядок слева-направо(pascal), а не справа-налево(stdcall).
только что создал DLL и проект, где в импорте/экспорте не указывал модификатор(вообще). Все работает, все вызывает. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проект тянет за собой Borland DLL qtintf70.dll | beegl | Общие вопросы Delphi | 5 | 23.12.2012 10:16 |
C# & DLL: как указать, что загружать DLL нужно из ЗАДАННОЙ папки "D:\My\Path\a.dll" ? | AntyDES | C# (си шарп) | 11 | 10.10.2012 20:00 |
Debugger Kernel BORDBK160.DLL or BORDBK160N.DLL is missing or not registered. | Человек_Борща | Общие вопросы Delphi | 0 | 15.07.2012 14:01 |
Ошибка при выхове функций Bass.dll из другой DLL | SalasAndriy | Общие вопросы Delphi | 7 | 21.10.2009 23:36 |