• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Ошибка при загрузке?

  • Автор темы Baton77
  • Дата начала
Статус
Закрыто для дальнейших ответов.
B

Baton77

Написал DLL
Код:
library replace;


uses
ShareMem, SysUtils, Classes;

{$R *.res}

function StringReplaceAll (text,byt,mot : string ) :string;
...
...
end;

function Vasya2Petya (text : string) : string;
begin
text := stringreplaceall (text,'Вася','Петя');
result := text;
end;

exports
Vasya2Petya;

begin
end.

В программе вызываю так :

Код:
implementation

{$R *.dfm}


function Vasya2Petya (text : string) : string; external 'replace.dll';

...
...

procedure TForm1.PreviewBtnClick(Sender: TObject);
const BR = '<br>';
var
plats : integer;
begin
for plats:=0 to Memo.Lines.Count-1 do
ConvertMemo.Lines.Add(Vasya2Petya(Memo.Lines.Strings[plats]+ BR));
ConvertMemo.Lines.SaveToFile('Program/Temp.html');
ConvertMemo.Clear;
Form4.Show;
end;

Под дельфи отказывается работать - вместе виснут. :p

А без дельфи работает, но выскакивает ошибка "Invalid pointer operation."

Что делаю не так? :D
 
K

Kuljok

Написал DLL
Код:
library replace;
uses
ShareMem, SysUtils, Classes;

{$R *.res}

function StringReplaceAll (text,byt,mot : string ) :string;
...
...
end;

function Vasya2Petya (text : string) : string;
begin
text := stringreplaceall (text,'Вася','Петя');
result := text;
end;

exports
Vasya2Petya;

begin
end.


Что делаю не так? ;)

Нельзя просто так использовать строки в качестве параметров для экспортируемых функций. Или используй PChar для передачи параметров и возврата результата. Или используй ShareMem.
 
B

Baton77

Разобрался... ;)
Почему-то нигде не находил информацию о том, что модуль ShareMem необходимо добавить и в
uses файла проекта программы - .DPR. :)
Код:
program BBcodeViewer;

uses
ShareMem,
Forms,
...
...

Ещё вот вопрос возник... :)
Обязательно ли наличие в папке с программой библиотеки borlndmm.dll ?
 
B

Barmutik

Обязательно её нахождение в одном из путей где её может найти система...
 
B

Barmutik

Да и этот менеджер работает на 20% в среднем быстре чем стандартный менеджер памяти от Борлянда...

В BDS 2006 они сделали его стандартным в поставке Дельфей...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!