Вниз
Скачать: 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.016 c
14-34175
ZiLot
2002-10-21 16:55
2002.11.11
Help по базам данных


3-33908
VikOss
2002-10-23 10:01
2002.11.11
Глюк в базе


1-33926
DVM
2002-10-31 10:25
2002.11.11
Сохранение содержимого ListView в реестре


3-33906
Picco
2002-10-23 10:36
2002.11.11
Редактирование вычисл. полей


8-34127
kuzmich
2002-07-22 19:36
2002.11.11
GLScene DsgnIntF




   Наверх