|
0 / 0 / 0
Регистрация: 08.01.2023
Сообщений: 36
|
|
Ошибки при передаче в dll массива и его возвращение10.04.2023, 20:45. Показов 3592. Ответов 49
Приветствую форумчан. Возник вопрос: как передать массив из действительных чисел в dll, а потом вернуть полученный результат - такой же массив. Попытался найти что-нибудь в интернете по этому поводу, но ничего полезного для себя найти не смог. Мое задание: есть последовательность, ее значения необходимо "сгладить", но мне либо просто не скомпилировать какой-либо из файлов, либо вылезает ошибка при работе кода, что " '' is not a valid floating point value. ".
Кто-нибудь может дать совет моим начинаниям?
0
|
|
| 10.04.2023, 20:45 | |
|
Ответы с готовыми решениями:
49
Одинаково ли быстродействие: 1. при передаче параметров в функцию или 2. создание кортежа и передаче его в функцию?
Ошибка при отладке ActiveX.DLL при передаче объекта форма |
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
|||||||||||||||||||||||
| 12.04.2023, 10:01 | |||||||||||||||||||||||
|
Добавлено через 3 часа 34 минуты Вот так и передаёт и возвращает нормально. Код основной программы:
Добавлено через 10 минут Через указатели так получилось:
0
|
|||||||||||||||||||||||
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
|
| 12.04.2023, 10:10 | |
|
0
|
|
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
|
| 13.04.2023, 09:14 | |
|
0
|
|
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
||||
| 13.04.2023, 09:27 | ||||
|
Впрочем, суть-то не в указателях у вас. Суть в том основная переделки, что вы массив b изначально в основной программе выделяете, а не внутри функции dll. Если бы вы так изначально сделали даже на обычных array of дельфовых - у вас и так бы всё заработало, причем даже без ShareMem. Основная же и была у вас заморочка в том, что вы внутри функции arr() массив выделяли. И я думал, что это принципиальное требование.
0
|
||||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
||
| 13.04.2023, 09:58 | ||
|
KSergey9, что-то я не пойму, чем у вас ссылки отличаются от указателей в данном случае?
Добавлено через 4 минуты
0
|
||
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
||||
| 13.04.2023, 10:05 | ||||
![]() Впрочем, как я и писал выше, суть именно вот в этом вашей переделки "под указатели" Добавлено через 2 минуты А в приведённом вами коде полностью отличается тем, что ссылка на динамический массив и указатель на первый элемент массива (ну ок, на начало элементов массива) - абсолютно разные штуки. Хотя бы тем, что в массиве динамическом вы и так знаете его размер, а по указателю о размере ничего сказать нельзя, только отдельным параметром передавать. Я не про удобство там или еще что, я про то, что это абсолютно разные штуки в языке, не смотря даже на то, что реализуются одинаковыми штуками внутри. Но то, что с точки зрения языка это разное - даёт разные им свойства что ли. На уровне языка Delphi.
0
|
||||
|
Модератор
|
||
| 13.04.2023, 10:06 | ||
|
0
|
||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
|||
| 13.04.2023, 10:12 | |||
|
KSergey9, понял, как вы воспринимаете ссылку. В общем, я имел в виду именно указатель на начало буфера с данными.
Добавлено через 1 минуту Добавлено через 1 минуту
0
|
|||
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
|||
| 13.04.2023, 10:19 | |||
|
Вполне нормальная задача. Добавлено через 3 минуты Достаточно было выделять массив заранее, а не внутри arr() Впрочем, "бояться" ShareMem не вижу никакого смысла. Это сделанное для вас готовое волшебство. При условии, конечно, что вы остаётесь в рамках только Delphi для основной программы и dll.
0
|
|||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
|||
| 13.04.2023, 10:32 | |||
|
Но ТСу подобное вряд ли нужно, так что, забудем про это. Добавлено через 41 секунду
0
|
|||
| 13.04.2023, 10:32 | |
|
Ошибка при передаче текста из ComboBox в DLL Ошибки при передаче DataTable
STM32F105 CAN копятся ошибки при передаче Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|