喫茶XRAYトップページ

[スレッド全体
]

[4727] XEのバグでしょうか?返信 削除
2011/5/10 (火) 09:07:48 pal
久しぶりの投稿です。
FindFirstで悩んでいます。
OS:WIN7

テンポラリフォルダのファイルリストを取得するものですが
1.Delphi7=>正常動作
2.Delphi2010=>正常動作
3.DelphiXE=>
---------------------------
モジュール 'TEST.exe' のアドレス 004B3ED0 で
アドレス 00000394 に対する読み取り違反がおきました。
---------------------------
こうなります。

XEのバグでしょうか?
ご教授ください。

procedure TForm1.Button1Click(Sender: TObject);
var
    i: Integer;
    StrTempPath: Array[0..MAX_PATH] of Char;
    SearchRec: TSearchRec;
    ST: TStringList;
begin
    GetTempPath(SizeOf(StrTempPath),StrTempPath);
    ST := TStringList.Create;
    try
        i := FindFirst(StrTempPath+'*.LOG',faAnyFile,SearchRec);
        while i = 0 do begin
            ST.Add(SearchRec.Name);
            i := FindNext(SearchRec);
        end;
        SysUtils.FindClose(SearchRec);
        Memo1.Lines.Assign(ST);
    finally
        ST.Free;
    end;
end;


[4728] Re:XEのバグでしょうか?返信 削除
2011/5/10 (火) 11:21:14 Syake
回答ではありません。(^_^;)

当方でも同様です。
Delphi2009ではエラーはありません。

AssignでもAddStringsでもエラーですね。
Assignは結果的にAddStringsを呼んでいますから
AddObjectが何か匂います。

Delphi2010はインストールしていないので確かめ
られませんが、DelphiXEとDelphi2010ではAddObject
の記述に違いがあるのかな?




[▼次のスレッド]
INCM/CMT
Cyclamen v3.82