Hallo,
ich habe folgendes Problem beim Suchen nach Dateien auf PocketPCs:
Code
function PocketPCFileExists(const Filename: String): Boolean;
var
dwSize,
dwHandle: DWord;
FD: PCe_FIND_DATA;
begin
CeRapiInit;
dwSize := SizeOf(FD);
GetMem(FD, dwSize);
dwHandle := CeFindFirstFile(PWideChar(WideString(Filename)), FD);
Result := (dwHandle <> INVALID_HANDLE_VALUE);
CeFindClose(dwHandle);
CeCloseHandle(dwHandle);
FreeMem(FD, SizeOf(FD)); ==> Zugriffsverletzung
CeRapiUnInit;
end;
Bei FreeMem kommt es im Projekt zu einer Zugriffsverletzung, die das gesamte Programm abschießt.
Benutze ich die Routine in einem Testprojekt (4 Zeile Code), dann funktioniert das einwandfrei.
Kann sich jemand einen Reim daraus machen, warum das so ist?
BS: WinXP
IDE: D5
ich habe folgendes Problem beim Suchen nach Dateien auf PocketPCs:
Code
function PocketPCFileExists(const Filename: String): Boolean;
var
dwSize,
dwHandle: DWord;
FD: PCe_FIND_DATA;
begin
CeRapiInit;
dwSize := SizeOf(FD);
GetMem(FD, dwSize);
dwHandle := CeFindFirstFile(PWideChar(WideString(Filename)), FD);
Result := (dwHandle <> INVALID_HANDLE_VALUE);
CeFindClose(dwHandle);
CeCloseHandle(dwHandle);
FreeMem(FD, SizeOf(FD)); ==> Zugriffsverletzung
CeRapiUnInit;
end;
Bei FreeMem kommt es im Projekt zu einer Zugriffsverletzung, die das gesamte Programm abschießt.
Benutze ich die Routine in einem Testprojekt (4 Zeile Code), dann funktioniert das einwandfrei.
Kann sich jemand einen Reim daraus machen, warum das so ist?
BS: WinXP
IDE: D5
Comment