Главная страница
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.015 c
1-97665
Андре
2003-06-17 11:07
2003.06.30
Delphi to Word


1-97600
Maxx
2003-06-18 14:10
2003.06.30
Как определить над каким компонентом на форме нажата левая кнопка


4-97938
Anet
2003-04-28 10:31
2003.06.30
Получение списка параметров динамически загружаемой функции


1-97585
Kostja
2003-06-16 00:04
2003.06.30
Количество дней в месяце


1-97731
Alexander Vasjuk
2003-06-18 14:47
2003.06.30
Новый вопрос по Excel