こんばんは。 某所で Delphi tips をやってる Autch と申します。
PROBLEMS の DownX についてですが、Try & Error で 4 月 5 日に、
> あ、あとDOS窓で確認できるエラー情報を、 > パイプで横取りすると何故か取得できません。 > なぜ?「AlreadyPackedException」とか。
と書かれていますが、What's This? にあるコードを見ると、
> // 同様にエラー出力の処理 > PeekNamedPipe(hErrReadPipe, nil, 0, nil, @dwErrOut, nil); > // 内容が存在すれば、読み取る > if (dwErrOut > 0) then > begin > FillChar(Buf, SizeOf(Buf), 0); > ReadFile(hReadPipe, Buf, SizeOf(Buf) - 1, dwErrOut, nil); > ErrOut.Add(Trim(Buf)); > end;
となっています。ReadFile() で読むべきハンドルはエラー出力なので、
> ReadFile(hErrReadPipe, Buf, SizeOf(Buf) - 1, dwErrOut, nil);
となるべきです。
すでにお気づきであれば失礼しました。 |
No.15 - 2004/04/08(Thu) 01:56
|
> 某所で Delphi tips をやってる Autch と申します。 なによりもまず、ぱくらせてもらってます。恐縮です。 > となっています。ReadFile() で読むべきハンドルはエラー出力なので、 > > ReadFile(hErrReadPipe, Buf, SizeOf(Buf) - 1, dwErrOut, nil); > となるべきです。 本当ですね。ご指摘でもありがとうございます。 ただ現在使用している関数ではいつの間にやら直してました。 でもやっぱり取れてないですねぇ。UPXをDOS窓から実行すると、問題のエラーの文字列は色付きで表示されるので、なんか別のところに出してるのかなぁと思ってるんですが、よくは分からないです。 あ、と思って --no-color オプションをつけてやってみましたが駄目でした(当然か...)。 > すでにお気づきであれば失礼しました。 そんなことはないです。こんな場末までようこそ。という返事さえ届くかどうかさえ危うい。 |
No.16 - 2004/04/08(Thu) 21:48
|
|
> でもやっぱり取れてないですねぇ。 嘘でした。表示処理を間違ってました。取れてます、見事に。 |
No.17 - 2004/04/11(Sun) 14:59
|
|