Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.11;
Скачать: 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 вся ветка

Текущий архив: 2002.11.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
3-33922
Labert
2002-10-21 23:07
2002.11.11
ADO и Windows NT


1-34112
NeyroSpace
2002-10-31 17:15
2002.11.11
Как убить событие OnClick и OnDblClick?


1-34008
Anatoly P
2002-10-31 19:44
2002.11.11
TImage в файл


6-34153
Oleg_Gashev
2002-09-11 23:56
2002.11.11
beginthread & socket


4-34297
Morfey Cool
2002-09-14 23:39
2002.11.11
прoграмму мою вырубает скажем АВП