Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Ошибка при загрузке


Автор: Testing001 25.4.2007, 18:36
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;


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

Что не так?

Автор: bartram 25.4.2007, 20:56
Первое что заметил
Код

ConvertMemo.Lines.SaveToFile('Program/Temp.html');

надо так
Код

ConvertMemo.Lines.SaveToFile('Program\Temp.html');

Это ты не в браузере адрес набираешь smile

Автор: aktuba 26.4.2007, 03:49
Цитата

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


По-моему, Result будет ссылаться никуда, т.к. text убьется после выполнения....

Автор: MetalFan 26.4.2007, 08:12
aktuba, не должен убиваться.

разве что в приложении не понятно, подключен ли ShareMem...

Автор: aktuba 26.4.2007, 08:40
Цитата

aktuba, не должен убиваться.


Теоретически не должен... "Меня терзают смутные сомнения"...  smile 

Автор: MetalFan 26.4.2007, 08:52
поидее при таком присвоении в Result скопируется полностью значение Text... хотя надо проверить, чо там компилятор накомпилировал...
 smile aktuba, ага) вчера ловили AV... в конце рабочего дня) весь моск сломали. и как ты думаешь что??? неинициализированная локальная переменная четырьмя вызовами выше... %)

Автор: aktuba 26.4.2007, 09:10
Цитата

aktuba, ага) вчера ловили AV... в конце рабочего дня) весь моск сломали. и как ты думаешь что??? неинициализированная локальная переменная четырьмя вызовами выше... %)


Почему-то даже не удивляюсь =)))) У самого такое пару раз было...

Автор: Testing001 28.4.2007, 22:50
Все разобрался спасибо! smile

Автор: aktuba 1.5.2007, 06:17
Цитата

Все разобрался спасибо! smile 


Ну так расскажи другим =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)