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


Автор: DYUMON 20.2.2008, 00:08
Вот такой у меня код
Код

procedure TForm1.Button1Click(Sender: TObject);
 var
  slovar:TStrings;
    i:integer;
      strk:Pchar;
begin

  slovar:=tstringlist.Create;
  slovar.LoadFromFile(filebook);
  label1.Caption:='Â ñëîâàðå '+inttostr(slovar.Count-1)+ ' çàïèñåé';
 for i:=0 to slovar.Count-1 do
 begin

 strk:=strnew(' x -y ');
  strk:=strcat(strk,(Pchar(filerar)));
   strk:=strcat(strk,' -p');
    strk:=strcat(strk,Pchar(slovar.Strings[i]));

   try
    Shellexecute(handle,nil , '7z.exe', strk,nil,SW_HIDE);
   except
     on e:Exception do Showmessage(e.message);
   end;
 StrDispose(strk);
 end;
 slovar.Free;
end;

так вот сама прога падает с выскакиванием отладчика чего обычно я не встречал

сообщние выдает такое
---------------------------
Debugger Fault Notification
---------------------------
Project UnrarX.exe faulted with message: 'access violation at 0x004059c1: write of address 0x00030df4'. Process Stopped. Use Step or Run to continue.
---------------------------
OK   
---------------------------
и окно отладчика вылазиет 
я уже чего только не пробовал не помогает. Может кто знает способ от этого избавится?

Автор: MetalFan 20.2.2008, 09:59
Цитата(DYUMON @  20.2.2008,  00:08 Найти цитируемый пост)
strk:=strnew(' x -y ');
  strk:=strcat(strk,(Pchar(filerar)));
   strk:=strcat(strk,' -p');
    strk:=strcat(strk,Pchar(slovar.Strings[i]));

 smile 
жесть... а чем обычный AnsiString  не угодил? зачем такие извращенства???

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