Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.14;
Скачать: CL | DM;

Вниз

проблема с DLL   Найти похожие ветки 

 
Al_jus   (2005-07-28 04:58) [0]

Здравствуйте.
Опять возникла проблема - пишу функцию в ДЛЛ которая должна разбивать строку на куски:

Код ДЛЛ:
uses
 ShareMem,
 SysUtils,
 Classes;

{$R *.RES}

function getTokens(text:String; separator:String; sl:TStringList):integer;stdcall;
var
count : integer;
begin
count := 0;
repeat
  if pos(separator,text)>0 then
      begin
        sl.Add(copy(text,1, pos(separator,text)-1));
        text:=copy(text,pos(separator,text)+1, length(text));
        count := count + 1;
      end else
      begin
        sl.Add(text);
        count := count + 1;
        break;
      end;
until false;
result := count;
end;

exports getTokens;


и вызываю из программы:

procedure TForm1.Button3Click(Sender: TObject);
var
sl:TStringList;
begin
sl := TStringList.create;
 @getTokens := nil;
 LibHandle := LoadLibrary("project2.DLL");
 if LibHandle >= 32 then
 begin
   @getTokens := GetProcAddress(LibHandle,"getTokens");
   if @getTokens <> nil then
     getTokens(Edit1.Text, Edit2.Text, sl);
 end;
 FreeLibrary(LibHandle);
showMessage(sl[strToInt(Edit3.Text)]);
sl.free;
end;


Кусок строки-то я получаю правильно, но когда я закрываю окно, вылетает ошибка InvalidPointerOperation и Runtime Error 116

Помогите разобраться в чем ошибка
Заранее спасибо


 
Джо ©   (2005-07-28 05:06) [1]

А ShareMem включил в файл проекта главной программы?


 
Al_jus   (2005-07-28 05:07) [2]

да


 
Джо ©   (2005-07-28 05:16) [3]


>  [2] Al_jus   (28.07.05 05:07)
> да

Надеюсь, первым в списке юнитов?
Проверь также как объявлен прототип функции в главной программе.
type
 TGetTokensProc = function (text:String; separator:String; sl:TStringList):integer;stdcall;

Так?
Кстати, stdcall тут ни к селу ни к городу ни в длл, ни в программе.



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

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

Наверх




Память: 0.47 MB
Время: 0.031 c
14-1122264112
KSergey
2005-07-25 08:01
2005.08.14
Поднять права пользователю кгурры administrators


14-1121791963
Newbie
2005-07-19 20:52
2005.08.14
Помогите начинающему - какой Делфи выбрать?


1-1122361760
Homer Simpson
2005-07-26 11:09
2005.08.14
Невизуальное дерево


3-1120461930
Draught
2005-07-04 11:25
2005.08.14
suser_id()


8-1113065140
Comrade
2005-04-09 20:45
2005.08.14
Эквалайзер Звука