Форум: "Основная";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];
ВнизВ 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c