Einzelnen Beitrag anzeigen

Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#1

Fehler, wenn Procedure aus DLL ausgeführt wird, sonst nicht

  Alt 30. Jan 2005, 10:48
Hallo Community,
Ich habe hier eine Procedure, die ich aus einer eigenen DLL ausführe:
Code:
procedure SavePLS(Filename: String; Listbox:TListbox; PathList:TStringList);
 external 'DLL_Name.dll';
[...]
Procedure SavePLS(Filename: String; Listbox:TListbox; Pathlist:TStringList);
Const NumItems = 'NumberOfEntries';
      Section = 'Playlist';
var sav:TiniFile; i,Total:Integer; F:TextFile; Buffer:String;
begin
  if not DirectoryExists(ExtractFilePath(FileName)) then exit;
 
  if ExtractFileExt(FileName)='.pls' then
  begin
    sav:=TiniFile.Create(Filename);
    try
      Total:=Pathlist.Count;
      if Total>0 then
      begin
        sav.WriteInteger(Section,NumItems,Total);
        sav.WriteInteger(Section,'Version',2);
        for i:=0 to Total-1 do
        begin
          sav.WriteString(Section,'File'+IntToStr(i+1),Pathlist.Strings[i]);
          sav.WriteString(Section,'Title'+IntToStr(i+1),Listbox.Items.Strings[i]);
          //Ini.WriteInteger(Section,'Length' + IntToStr(i+1),Integer(FTime.Objects[i]));
        end;
      end;
    finally
      sav.Free;
    end;
  end;

  if ExtractFileExt(FileName)='.m3u' then
  begin
    try
      AssignFile(F,Filename);
      Rewrite(F);
      Writeln(F,'#EXTM3U');
      for i:=0 to PathList.Count-1 do
      begin
        Buffer:=Format('#EXTINF:%d,%s',[-1 {Time},PathList.Strings[i]]);
        WriteLn(F,Buffer);
        WriteLn(F,Listbox.Items.Strings[i]);
      end;
    finally
      CloseFile(F);
    end;
  end;
end;
Wenn ich diese Procedure beim OnClose-Ereignis ausführe, erscheint eine Fehlermeldung...ungefähr diese: 'Access Violation at Address [...], Write of Address [...]'. Nachdem ich die Procedure in mein Programm eingefügt und diese von dort aus ausgeführt hatte, erhielt ich keine Fehlermeldung mehr.
Könnt Ihr mir helfen, das Problem zu verstehen bzw. zu lösen?

mfg Nogge
  Mit Zitat antworten Zitat