Вниз
Скачать: 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 вся ветка

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



Память: 0.46 MB
Время: 0.025 c
3-1106634249
Arrows
2005-01-25 09:24
2005.02.20
Структура dbf файла


4-1104895906
DmiSb
2005-01-05 06:31
2005.02.20
2 проблемы с DrawText


1-1107275325
pablo
2005-02-01 19:28
2005.02.20
Декомпелятор дельфи-EXE


14-1107190910
Piter
2005-01-31 20:01
2005.02.20
Проблемы с Half-Life 2


1-1107424602
dreamse
2005-02-03 12:56
2005.02.20
Как определить какие строки выделены в DbGrid




   Наверх