Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Runtime error 216 at 77D18C2C (https://www.delphipraxis.net/17267-runtime-error-216-77d18c2c.html)

Pseudemys Nelsoni 2. Mär 2004 10:01


Runtime error 216 at 77D18C2C
 
hallo,

woher kommt obiger fehler? auf jedenfall wird dieser durch folgendes ausgelöst:

Delphi-Quellcode:
  hFile := CreateFile(PChar(pfad),
           GENERIC_READ or GENERIC_WRITE,
           FILE_SHARE_READ or FILE_SHARE_WRITE,
           nil,
           OPEN_EXISTING,
           0,
           0
  );

    ReadFile(hFile, buf, SizeOf(buf), NumberOfBytesRead, nil);
  MessageBox(0, PChar(string(NumberOfBytesRead)), 'hi', 0);

r_kerber 2. Mär 2004 10:12

Re: Runtime error 216 at 77D18C2C
 
Ist buf in der erforderlichen Größe bereitgestellt??

teebee 2. Mär 2004 10:12

Re: Runtime error 216 at 77D18C2C
 
Ein Runtime Error 216 ist eine Zugriffsverletzung. Hast u für Deinen Buffer genug Speicher reserviert?

Gruß, teebee

Pseudemys Nelsoni 2. Mär 2004 10:45

Re: Runtime error 216 at 77D18C2C
 
hallo,

der buffer sah so aus:

Delphi-Quellcode:
buf: Array[0..4095] of Char;

aber selbst wenn ich " buf: Array[0..1000000000] of Char;" nehme (was ziemlich lagt :D) kommt der fehler..

r_kerber 2. Mär 2004 10:56

Re: Runtime error 216 at 77D18C2C
 
Hast Du schon mal überprüft, ob handle <> NIL ist? Vielleicht solltest Du auch noch ein Typecast auf die Winapi32-Typen machen.

Pseudemys Nelsoni 2. Mär 2004 11:13

Re: Runtime error 216 at 77D18C2C
 
Code:
  if (hFile <> 0) then messagebox(0, 'hi', 'hi', 0);

die message wird ausgegeben, also existiert das handle.

was meinst du mit api typen?

r_kerber 2. Mär 2004 11:18

Re: Runtime error 216 at 77D18C2C
 
[equote="In den MS Win32 Developer's References steht geschrieben"]HANDLE CreateFile(

LPCTSTR lpFileName, // pointer to name of the file
DWORD dwDesiredAccess, // access (read-write) mode
DWORD dwShareMode, // share mode
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // pointer to security attributes
DWORD dwCreationDistribution, // how to create
DWORD dwFlagsAndAttributes, // file attributes
HANDLE hTemplateFile // handle to file with attributes to copy
);[/equote]

APP 2. Mär 2004 11:24

Re: Runtime error 216 at 77D18C2C
 
Hallo Pseudemys Nelsoni,

CreateFile gibt bei einem fehlerhaften Handle
Zitat:

INVALID_HANDLE_VALUE = DWORD(-1);
zurück, daher mußt Du auf

Delphi-Quellcode:
  IF hFile = INVALID_HANDLE_VALUE THEN
  // Fehler
oder auf -1 und nicht auf 0 prüfen.

Pseudemys Nelsoni 2. Mär 2004 11:28

Re: Runtime error 216 at 77D18C2C
 
und wie zeig ich das als string an r_kerber?

btw:

Delphi-Quellcode:
if (hFile <> INVALID_HANDLE_VALUE) then messagebox(0, 'hi', 'hi', 0);
´


zeigt ebenfalls die messagebox

will nur solch nen doofen string in einer dll ersetzen, man ist das schwer

APP 2. Mär 2004 11:48

Re: Runtime error 216 at 77D18C2C
 
Zitat:

Zitat von Pseudemys Nelsoni
...und wie zeig ich das als string an r_kerber?

Luckie hat Dir hier http://www.delphipraxis.net/internal...light=readfile schon die Antwort gegeben.
Stichwort: NumberOfBytesRead (=Gelesen von Luckie) ist vom Typ ...)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 Uhr.
Seite 1 von 3  1 23      

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