| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > В чем отличие |
| Автор: lnix 7.5.2010, 13:51 |
| Столкнулся с проблемой передачи массива через параметры из dll в приложение написанное на VC++ 2008. Суть в следующем: при передаче массива типа TypeArray = arrat[0..1023] of double все работает замечательно. При передача массива типа TypeArray = array of Double ничего не передается (размерность массива устанавливается в dll). Принимающий массив в программе имеет ту-же размерность что и возвращаемый из dll. Как обойти это ограничение? Заранее благодарен. |
| Автор: lnix 7.5.2010, 14:25 | ||||
| А где можно углубить свои знания по поводу размещения в памяти объектов и т.д. и т.п. Можете посоветовать литераруту? Добавлено через 5 минут и 56 секунд Вот пример процедуры для возврата
возможно я туплю но что-то не получается Добавлено через 9 минут и 11 секунд да вот еще
|
| Автор: Alexeis 7.5.2010, 15:31 |
| lnix, так что эта функция вызывается из экзешником из Dll? |
| Автор: lnix 7.5.2010, 15:39 |
| Да функция вызывается exe из dll |
| Автор: Alexeis 7.5.2010, 15:57 |
| lnix, такой прототип функции невозможно описать в exe на MSVC . Потому что у него нет соответствия типу array of Double; А второе, что разные менеджеры памяти. |
| Автор: lnix 7.5.2010, 16:04 |
| Приблизительно к такому же выводу я и пришел, хотя теплилась надежда... маленькая совсем... Очень признателен. |
| Автор: Alexeis 7.5.2010, 16:15 |
| lnix, но есть соответствие типу ^array[0..0] of Double. Это double** . Но тогда память в делфи нужно будет выделять при помощи LocalAlloc HeapAlloc. Добавлено через 2 минуты и 40 секунд В делфи вызываем GetProcessHeap и получаем дескриптор кучи приложения. Его передаем в HeapAlloc и выделяем память. В вижуалке для освобождения вызываем HeapFree. |