掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DELPHI7からXEで”'StrPas'へのオーバー、、、” (ID:41048)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
DEKOさん、ありがとうございます コード掲載にあたり、よく見直したら肝心のStrPasで文字列変換された文字列を使用していませんでした。つまり、StrPasは削除しても差し支えのない様なプログラムにしていました。 取り敢えず、コメントアウトすることでエラーはなくなりました。お騒がせしました。 ただ、後学の為、StrPasの正しい使い方はご教授願いたいと思い、敢えてコメントアウトしたソースを転記しています。 ================ if i_CRLF > 0 then begin while rev_buf.pre <> rev_buf.post do begin buf[ n ] := rev_buf.buf[ rev_buf.post ]; // bufferが空じゃない間文字を取り出す inc( n ); inc( rev_buf.post ); if rev_buf.post > BUF_SIZE then rev_buf.post := 1; // リングバファ end; buf[ n - 2 ] := Char(0); // CRLF を除きヌルターミネート // str := StrPas( @buf[1] ); // コピー if rtn <> 0 then begin for m := 1 to l do begin if (( ptr + m - 1 )^ <> buf[ m ] ) then // コマンドの応答が同じか、比較する begin ret := -1; // 違えば −1 break; end; end; end; dec( i_CRLF ); ret := 0; break; end; ================ 上のソースでは、Char配列のまま1文字ずつ比較しています。 ここを文字列変換すれば、StrComp等が使えそうと思いました。 よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.