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

Тема в разделе "Delphi - Система", создана пользователем Baton77, 26 сен 2006.

Статус темы:
Закрыта.
  1. Baton77

    Baton77 Гость

    Написал DLL
    Код (Text):
    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.
    В программе вызываю так :

    Код (Text):
    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
     
  2. Kuljok

    Kuljok Гость

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

    Baton77 Гость

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

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

    Barmutik Гость

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

    Baton77 Гость

  6. Barmutik

    Barmutik Гость

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

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

Поделиться этой страницей