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

Dll и TStringList   Найти похожие ветки 

← →
AndrewK ©   (2003-06-19 13:41) [0]

Доброго времени суток, господа!

Вопрос такой. Надо написать DLL, которая бы обрабатывала текстовый список TStringList и передавала обработанный список в другом TStringList.

Вот мой код:

library Telrad;

uses
SysUtils,
Classes;


procedure TransformLog (aLog : TStringList; aTransformedLog : TStringList);
var I : Integer;
begin
if not Assigned (aLog) then Exit;
if not Assigned (aTransformedLog) then Exit;
aTransformedLog.Clear;
for I := 0 to aLog.Count-1 do begin
aTransformedLog.Add("Обработано: "+aLog.Strings[I]);
end;
end;

exports
TransformLog index 1 name "TransformLog";

begin
end.


В программе делаю так, (все проверки опущены)

...
Type

tTransformLog = procedure (aLog : TStringList; TransformedLog : TStringList); StdCall;

...

procedure TForm1.Button1Click(Sender: TObject);
var aL1, aL2 : TStringList;
LibHandle : THandle;
TL : tTransformLog;
begin
aL1 := TStringList.Create;
aL1.Add("1");
aL1.Add("2");
aL1.Add("3");
aL1.Add("4");
aL2 := TStringList.Create;
LibHandle := LoadLibrary("Telrad.dll");
try
@TL := GetProcAddress(LibHandle, "TransformLog");
TL(aL1, aL2);
Memo1.Text := aL2.Text;
finally
FreeLibrary(LibHandle);
aL1.Free;
aL2.Free;
end;
end;



На выполнение данного кода вываливается Access violation ...

Подскажите, пожалуйста, как можно написать такую DLL.


← →
Palladin ©   (2003-06-19 13:45) [1]

ну а почему у тебя в программе stdcall а в библотеке не sdtcall?
естественно будешь ошибка...


← →
Anatoly Podgoretsky ©   (2003-06-19 13:47) [2]

А комментарий из программы, который тебе заботливо представила Дельфи стер, верни взад и внимательно прочитай про sharemem.


← →
AndrewK ©   (2003-06-19 15:37) [3]

Спасибо. :)

Вот уж действительно срабатывает правило:

- Если уже совсем ничего не помогает, значит пора читать хелп.



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

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



Память: 0.45 MB
Время: 0.01 c
3-97492
pathfinder
2003-06-05 01:42
2003.06.30
Вопрос о подключении к БД...


1-97583
Lony
2003-06-18 05:03
2003.06.30
Программа и DLL


1-97602
Last
2003-06-19 10:05
2003.06.30
ShowModal


14-97809
Nikky
2003-06-11 16:40
2003.06.30
Проблемы с


14-97802
Manulo
2003-06-11 17:58
2003.06.30
HotKey MS IE 6




   Наверх