Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];

Вниз

Прием массива в DLL....   Найти похожие ветки 

 
$Hic0   (2002-05-31 12:10) [0]

День добрый!
Мне необходимо передавать в DLL для обработки динамический массив вещественных чисел. Я пишу:

library Gauss;

uses
SysUtils,
Classes,
Dialogs;

{$R *.RES}

Procedure Init(n:byte;A:array of Real); stdcall; export;
Begin
ShowMessage(FloatToStr(a[1])); //<---- Здесь компилатор воет что не определен тип массива :(
End;
Exports
Init index 1 name "InitGauss";
end.


Да... это двумерный массив :)
ShowMessage засунул просто для проверки :)
Только начал ковырять DLL-технологию, не судите строго :)
Заранее спасибо!


 
Sasha9   (2002-05-31 12:43) [1]


> Да... это двумерный массив :)

?????????????? вообще-то двумерный выглядит так: A: Array of Array of Real;
может ты чё путаешь с индексом массива, там нумерация с нуля
я попробовал без dll-ки и у меня всё пошло(влом с dll-кой возиться, но если ооочень нужно скажи я попробую)


 
sunwheel   (2002-05-31 12:46) [2]

Не совсем ясно почему двумерный массив определяется как array of Real, но не важно. Попробуй сделать так:

type
TA1 : Array of Real;
TA2 : Array of TA1;

Procedure Init(n:byte;A:TA2); stdcall; export;

Все должно работать.


 
Виктор Щербаков   (2002-05-31 12:51) [3]

В секции uses модуль ShareMem должен быть на первом месте
в длл и хост-приложении, если передаешь дин. массивы или строки.


 
Freezer   (2002-05-31 13:05) [4]

В твоем случае, я бы еще передавал размерность массива, т.к. он динамический и декларацию процедуры сделал след. образом...

type
TArr: array of array of Real;

procedure Init(const A: TArr; X, Y: Integer);


 
S@shka   (2002-05-31 13:40) [5]

ShareMem !!!!!!!!!!!!!!


 
SPeller   (2002-05-31 14:52) [6]

Попробуй передать указатель на первый элемент и размерность. Тут и шаремем не нужен.


 
$HiC0   (2002-05-31 15:25) [7]

Спасибо! Я тут ковыряюсь мучаюсь :)) Заглядываю на форум а столько всего, пасиба, я до много правда сам доковылял :) А в коде в самомо деле ошибка была :) Это просто я не углядел :). Пасиба. Вы настоящие друзья! :)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
1-30810
Fly`
2002-05-31 13:22
2002.06.10
TreeView. Редактирование Текста TTreeNode.


1-30870
dimich
2002-05-29 16:26
2002.06.10
ImageList...


4-31038
SPeller
2002-04-05 13:07
2002.06.10
О контекстах


4-31036
Sirus
2002-04-06 11:35
2002.06.10
Проблема с выгрузкой формы в DLL из памяти


3-30688
начинающий програмер
2002-05-17 19:38
2002.06.10
Глюки???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский