Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Access Violation bei Dateizugriff Windows 7 (https://www.delphipraxis.net/144130-access-violation-bei-dateizugriff-windows-7-a.html)

BillieJoe90 3. Dez 2009 21:08

Re: Access Violation bei Dateizugriff Windows 7
 
Delphi-Quellcode:
id3v2.FileName := 'C:\Users\Johannes\Desktop\bt123.mp3';
try
  id3v2.Open;
except
  ShowMessage('geht nich');
end;
Selbst so bekomme ich die Access Violation angezeigt... PLUS das Fenster "geht nich" :?

Luckie 3. Dez 2009 21:13

Re: Access Violation bei Dateizugriff Windows 7
 
Delphi-Quellcode:
try
  id3v2.FileName := 'C:\Users\Johannes\Desktop\bt123.mp3';
  id3v2.Open;
except
  on E: Exception do
    ShowMessage(E.Message);
end;

hoika 4. Dez 2009 07:35

Re: Access Violation bei Dateizugriff Windows 7
 
Hallo,

Zitat:

Selbst so bekomme ich die Access Violation angezeigt

Aber nur, wenn das Programm aus der IDE heraus gestartet wird.
Standalone sollte keine kommen.

Falls doch, ist Sie nicht an dieser Stelle,
oder ...

1. Genau an dieser Stelle wird die AV angezeigt ?
Hast du das mit dem Debugger auch geprüft
(habe keine Lust, den ganzen Thread zu lesen ;) )
2. Warum nimmst du nicht mal zum Test einen anderen Pfad,
z.B. von einem USB-Stick (oder halt nicht c:)
3. Hast du mal SetErrorMode probiert (siehe Windows-Hilfe),
das benutzt man, um die lästige "Keine CD im Laufwerk"-Meldung
von Windows zu unterdrücken.
Aber ne Access Violation ist eigentlich was anderes.


Heiko

ATS3788 22. Jan 2010 15:52

Re: Access Violation bei Dateizugriff Windows 7
 
Hallo habe das gleiche Problem
egal ob in Vista oder XP und zwar in der folgenden
Procedure bei Strings.Add(S); knallt es.
Eine EAccessViolation hat wahrscheinlich was
mit JclUnicode.TWideStrings zu schaffen.

Delphi-Quellcode:
procedure ExtractStrings(Separator: WideChar; const Content: WideString;
  Strings: {$IFDEF COMPILER12_UP}TStrings{$ELSE}JclUnicode.TWideStrings{$ENDIF COMPILER12_UP});
var
  Tail: PWideChar;
  S: WideString;
  EOS: Boolean;
  ContentPtr: PWideChar;
begin
  ContentPtr := PWideChar(Content);
  if (ContentPtr = nil) or (ContentPtr^ = WideNull) or (Strings = nil) then
    Exit;

  Strings.BeginUpdate;
  try
    Tail := ContentPtr;

    repeat
      while (Tail^ <> Separator) and (Tail^ <> WideNull) do
        Inc(Tail);

      EOS := Tail^ = WideNull;

      SetLength(S, Tail - ContentPtr);
      Move(ContentPtr[0], S[1], (Tail - ContentPtr) * SizeOf(WideChar));
      Strings.Add(S);

      Inc(Tail);
      ContentPtr := Tail;
    until EOS;
  finally
    Strings.EndUpdate;
  end;
end;
[edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen. Mfg, SirThornberry[/edit]

hoika 23. Jan 2010 06:08

Re: Access Violation bei Dateizugriff Windows 7
 
Hallo,

hhm, da hilft nur auf eine Update zu warten
oder COMPILER12_UP selbst zu definieren.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:52 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz