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

Вниз

В DLL не работает процедура со строковыми параметрами   Найти похожие ветки 

 
__oleg   (2005-02-07 13:49) [0]

Пишу DLL:

uses ShareMem ...

procedure Test(var S: string; var Res: string);
begin
 Res := S + S;
end;

Пытаюсь вызвать функцию в проекте:

procedure XXX;
var S, Res: string;
begin
 ...
 Test(S, Res);
end;

Вылетает Access violation.
Подскажите, как можно передавать строки в DLL и получать из DLL ?
Заранее спасибо.


 
Юрий Зотов ©   (2005-02-07 14:01) [1]

В EXE вставлено ShareMem тоже?


 
Digitman ©   (2005-02-07 14:01) [2]


> Пытаюсь вызвать функцию в проекте


Sharemem д.б. указан первой позицией в uses обоих dpr.

Либо Sharemem не д.б. указан ни там ни там, но тогда оба проекта д.б. собраны с опцией использования ран-тайм пакетов


 
__oleg   (2005-02-07 14:25) [3]

Уточняю: есть проект-dll:

library RCalc;

uses
 ShareMem, SysUtils,
 Classes, UnitsConv, uSymCodes, uRCalcTypes,
 Math, MyMath, MyFunc, uGasPP, uCalcErr;

{$R *.res}

procedure Test(var S: string; var Res: string);
begin
 Res := S + S;
end;

exports
 Test;
begin
end.

И есть основной проект:

program _test;
uses ShareMem, ...

В главном юните проекта пробую вызывать процедуру из DLL:

procedure TForm1.Button1Click(Sender: TObject);
var C, R: string;
begin
 ...
 C := "ab";
 R := "";
 Test(C, R); // Access violation
end;
...

В обоих проектах опция "Build with runtime...." выключена.


 
Владислав ©   (2005-02-07 14:39) [4]

В главном юните вот это откуда:
Test(C, R); // Access violation
?


 
Digitman ©   (2005-02-07 14:44) [5]


> __oleg


библ-ку RCalc как линкуешь ? динамически ? статически ?
покажи в коде ..


 
__oleg   (2005-02-07 14:50) [6]

Ой ! Забыл указать stdcall при описании процедуры. Каюсь...
Но все равно, спасибо всем !


 
Anatoly Podgoretsky ©   (2005-02-07 14:58) [7]

Это не обязательное условие, ты опять не привел полные данные, объявление процедуры в программе. Должно быть одинаковым и совсем не обязательно stdcall



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

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

Наверх




Память: 0.48 MB
Время: 0.027 c
1-1107534792
Fostr
2005-02-04 19:33
2005.02.20
RichEdit масштаб


3-1106462247
SeregaMan
2005-01-23 09:37
2005.02.20
Не могу убрать оконо запроса имени пользователя и пароля в TQuery


1-1107330913
Игорь нтк
2005-02-02 10:55
2005.02.20
День недели


6-1102056721
JohnS
2004-12-03 09:52
2005.02.20
Indy(idFtp) , Выделенка , проблемы


14-1107005723
Narik
2005-01-29 16:35
2005.02.20
?