|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.07.2015, 17:54 | #21 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
|
22.07.2015, 18:30 | #22 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
22.07.2015, 19:25 | #23 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
size - это максимально возможная длина строки которая подаётся на вход процедуры. В принципе, можно выделить резиновый массив внутри функции, но точно не могу гарантировать, что при передаче управления этот массив будет валидным в приложении.
я выделил буфер в 1024 байта внутри ДЛЛ, если мало можешь выделить больше.
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
22.07.2015, 22:06 | #24 | ||
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
JUDAS, а кто память освободит, утечек не боитесь? И стандарты С++ тут не при чём. Просто в DLL и EXE разные менеджеры памяти.
Цитата:
По ссылке которую я давал описаны и первопричины и все методы устранения. В том числе ShareMem (когда он работает и когда он не работает). Описано очень просто, вовсе не обязательно досконально знать указатели и прочее, просто вдумчиво медленно прочтите от начала и до конца. Цитата:
А ещё лучше - GetSongGrid() будет возвращать String и не будет экспортироваться. Зато будут экспортироваться функции-обёртки, передающие ответ программе разными способами. |
||
22.07.2015, 22:17 | #25 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
ResourceSpace, в целом с тобой согласен за исключением одного нюанса.
Код:
Исходя из этих двух требований автора, выделение места (статическое !) выполняется внутри самой ДЛЛ. Другое дело, если бы автор указал формат результирующей строки и максимальное ограничение, тогда, можно было бы выделять память в вызывающем приложении. п.с. судя по скрипту, он подаёт на вход название песни, а возвращает то ли слова песни, то ли её описание, размер которого неизвестен.
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
23.07.2015, 11:41 | #26 | |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
?? Решил попробовать с TStringList, добавил в Uses ShareMem/
И получил сообщение: Цитата:
И, если не затруднит: как наиболее просто "вытащить" из DLL уровень выполнения процесса (организовать ProgressBar в EXE, показывающий процесс выполнения цикла в DLL)? Последний раз редактировалось Ship_1; 23.07.2015 в 13:35. |
|
23.07.2015, 19:56 | #27 | |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
Та не надо никаких ShareMem. Выбирайте из остальных трёх вариантов.
Цитата:
А поиск у вас ограничен и тем что на web-странице выдаётся и параметром, заданным вручную. И заранее неизвестно сколько на странице. В таких условиях не получится ProgressBar. А вообще передаёте в Dll указатель на процедуру из Exe, меняющую положение ProgressBar, а внутри Dll через неё указываете сколько % готово. Подправил мелкие опечатки, добавил пару штук, надеюсь пригодятся. P.S. Исчио статиа: http://www.gunsmoker.ru/2008/12/1.html Последний раз редактировалось ResourceSpace; 23.07.2015 в 20:20. Причина: P.S. |
|
24.07.2015, 11:22 | #28 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
У меня, вобщем-то, скачивается только код страницы, которую я обрабатываю, удаляя части от начала до определённого вхождения текста. К оставшейся длине полученного кода я и хотел "прикрутить" прогресс (стартовая длина минус оставшаяся).
А Ваше приложение у меня ругается: TSpinEdit not found. Последний раз редактировалось Ship_1; 24.07.2015 в 11:49. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Access violation at address XXXXXX in module 'YYYYYY'. Read of address ZZZZZZ' | nik-kang | Помощь студентам | 0 | 18.06.2012 22:22 |
Ошибка: "Access violation at address 0045E503 in module 'Project1.exe'. Read of address 00316777. | Katexxxsa | Общие вопросы Delphi | 1 | 03.10.2011 23:16 |
Access violation at address 004733C4 in module 'loginin.exe'. Read of address 00000048' | pavellyba | Общие вопросы Delphi | 2 | 18.08.2011 10:32 |
Access violation at address 00447E73 in modul Project.exe. Read of address 00000057. | ArtGrek | Общие вопросы Delphi | 40 | 12.03.2011 22:03 |
Access violation at address 00478D0E in module 'Project1.exe'. Write of address 00000000 | fondreykus-1 | Общие вопросы Delphi | 5 | 27.01.2010 14:25 |