Вниз
Скачать: CL | DM;

Опять работа с dll !!!   Найти похожие ветки 

← →
Eugene_post   (2002-10-30 21:51) [0]

Люди !!! Помогите разобраться с dll. Необходимо в dll передать несколько массивов, затем произвести расчеты и передать другие массивы в программу ...


← →
Eugene_post   (2002-10-30 22:39) [1]

Никто не знает как в длл массив передать?


← →
Fiend ©   (2002-10-31 14:13) [2]

определи функцию в бибиотеке
function obr(mas: array[1..10] of byte):array[1..5] of string;
begin
обработал чё там тебе надо
end;

при вызове соответственно в параметрах передаш массив, а после того как эта суперфункция отработает получишь в результате другой массив


← →
Eugene_post   (2002-10-31 14:21) [3]

Только у меня вот такой массив:

type
Goods=record
Numb:Integer;
InPrice:Double;
OnPrice:Double;
Quantity:Double;
Spros:Double;
PotokPrRozn:Double;
PotokPrOpt:Double;
B:Double;
OptPrice:Double;
OptQuantity:Double;
end;

var
ArrayGoods: Array of Goods;

мне нужно его передать в dll, в момент передачи будут известны только некоторые поля, а в dll считаются другие поля, а затем его нужно передать обратно в прогр.


← →
Fiend ©   (2002-10-31 14:24) [4]

procudure obr(var mas: arraygoods);
begin
обработал чё там тебе надо
end;


← →
Fiend ©   (2002-10-31 14:36) [5]

Вот это надо прописать и в библиотеке
type
Goods=record
Numb:Integer;
InPrice:Double;
OnPrice:Double;
Quantity:Double;
Spros:Double;
PotokPrRozn:Double;
PotokPrOpt:Double;
B:Double;
OptPrice:Double;
OptQuantity:Double;
end;
Чтобы библия твоя знала формат элементов массива


← →
Eugene_post   (2002-10-31 14:41) [6]

Вот моя библиотека:

library Data;

uses
SysUtils,
Classes;

type
Goods=record
Numb:Integer;
InPrice:Double;
OnPrice:Double;
Quantity:Double;
Spros:Double;
PotokPrRozn:Double;
PotokPrOpt:Double;
B:Double;
OptPrice:Double;
OptQuantity:Double;
end;

{$R *.res}

function Kernel(var mas: Goods): Goods; stdcall;
begin
Result.B:=1+Sqr(X)-Ln(FullQuanity/Quantity);
Result.PotokPrRozn:=Quantity*((InPrice*(1+(OnPrice/100)))-InPrice);
Result.OptPrice:=((((InPrice*(1+(OnPrice/100))/(Sqr(X)+1))+InPrice)/InPrice)-1)*100;
Result.OptQuantity:=FullQuanity*Exp(Result.B-((InPrice*(1+(OnPrice/100))/(Sqr(X)+1))+InPrice)/(InPrice*(1+(OnPrice/100))/(Sqr(X)+1)));
end;

exports
Kernel;
end.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
1-34062
Bomberman
2002-10-30 16:52
2002.11.11
Список дисков равен списку пунктов меню.


14-34199
Rouse_
2002-10-21 04:41
2002.11.11
Проблемы с почтовиком The BAT


14-34200
SPeller
2002-10-22 12:26
2002.11.11
Проигрыватель MPEG4/DivX под ДОС


6-34140
Жорик
2002-09-13 15:22
2002.11.11
Нажатие кнопки внутри TWEBbrowser


14-34253
iva
2002-10-24 08:38
2002.11.11
Подскажите




   Наверх