Форум: "Основная";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];
ВнизРабота с DLL Найти похожие ветки
← →
SamProf © (2005-12-05 11:34) [0]Мастера, такая проблема! Я создаю dllку:
library GraphicDLL;
uses
SysUtils,
Classes,
SamGraphicU in "SamGraphicU.pas" {SamGraphicF};
{$R *.res}
procedure RunGraphic(L:TList;b:P40b;num:integer);
begin
showmessage(inttostr(num));
_RunGraphic(l,b,num);
end;
exports
RunGraphic;
begin
end.
И в проге пишу такой код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
P40b=^T40b;
T40b=array [1..40] of byte;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
procedure RunGraphic(L:TList;b:P40b;num:integer); stdcall; external "GraphicDLL.dll" name "RunGraphic";
implementation
uses SamGraphicU;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
_l:TList;
p:^TTSIItem;
_b,_b1:P40b;
i,n,na:Integer;
begin
n:=20000;
na:=20;
_L:=TList.Create;
for i:=1 to na do
begin
new(p);
p^.name:=chr(ord("A")+i);;
fillchar(p^.Range,sizeof(t40b),0);
p^.Range[1]:=i;
p^.Range[2]:=0;
_l.Add(p);
end;
GetMem(_b,sizeof(t40b)*n);
_b1:=_b;
for i:=1 to n do
begin
fillchar(_b^,sizeof(t40b),0);
_b^[1]:=i mod $FF;
_b^[2]:=(i div $FF)mod $FF;
inc(_b);
end;
//==================================================
RunGraphic(_l,_b1,n);
while _l.Count>0 do
begin
p:=_l.Items[0];
Dispose(p);
_l.Delete(0);
end;
_l.Free;
close;
end;
end.
В итоге в DLL ке параметр num всегда=255.
В чём прапара? Спасибо!
← →
begin...end © (2005-12-05 11:43) [1]А можно хотя бы соглашения о вызове одинаковые указать? Для начала.
← →
SamProf © (2005-12-05 11:51) [2]не понял!!!!
← →
Ega23 © (2005-12-05 11:53) [3]Вот почему у тебя в одном месте StdCall стоит, а в другом - нет?
← →
Amoeba © (2005-12-05 14:59) [4]Или убери StdCall нафиг (что в данном случее правильно), или добавь его в DLL. Главное - одинаковые соглашения о вызовах в DLL и модуле импорта.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c