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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
1-97744
EgorKA
2003-06-18 18:51
2003.06.30
TEdit с выдилениями и TRxRichEdit c полями...


6-97775
Nigger
2003-04-23 14:26
2003.06.30
Socket Threads?????


14-97885
EvgenTss
2003-06-13 15:09
2003.06.30
как разбить ip в стринговой переменной на октеты...


14-97875
Knight
2003-06-10 22:40
2003.06.30
Что вы думаете о снах?


1-97733
pupil
2003-06-17 21:40
2003.06.30
конец строки в RichEdit