- 【Delphi】Embarcaderoオッチャ その29【C++ビルダ】
667 :デフォルトの名無しさん[sage]:2014/04/27(日) 19:31:33.96 ID:Q+0O3D4/ - TIdTCPClient を使ってデータの受信をしています。
受信したデータをTIdBytesに保存して、実際に使う変数等に移していますが、access violationが出てしまいます。 var mybuff: TIdBytes; mypos: TIdBytes; begin SetLength(mybuff,128); mypos := @mybuff[60]; mypos := @mybuff[64]; // <- エラー 実際のコードは procedure SetData(var dat:WORD,buf:TIdBytes,var size:WORD); pos := 0; SetData(dat1,@mybuff[pos],size); pos := pos + size; SetData(dat2,@mybuff[pos],size); pos := pos + size; としており、posが64前後でエラーが発生します。 エラーの回避法は無いでしょうか。そもそものやり方がまずいのでしょうか。 アドバイスお願いします。
| - 【Delphi】Embarcaderoオッチャ その29【C++ビルダ】
670 :デフォルトの名無しさん[sage]:2014/04/27(日) 20:47:29.16 ID:Q+0O3D4/ - >>668
なるほど、わからん。 という冗談はともかく、アドバイスありがとうございます。 Indy を使っている以上、TIdBytes を使いたいのですが、TMemoryStreamとかの方が良いですかね?
| - 【Delphi】Embarcaderoオッチャ その29【C++ビルダ】
673 :デフォルトの名無しさん[sage]:2014/04/27(日) 21:06:01.34 ID:Q+0O3D4/ - >>672
TIdBytesでやる場合は、Copy(src,pos,Length(src) - pos) とかを渡すのが常套になるのでしょうか? Delphiは読めるのですが、本格的に作り始めたのは最近なので、Delphiでの定石がまだわかりません。
| - 【Delphi】Embarcaderoオッチャ その29【C++ビルダ】
676 :デフォルトの名無しさん[sage]:2014/04/27(日) 21:25:43.33 ID:Q+0O3D4/ - >>674
詳しいアドバイスありがとうございます。 参考にして手直ししてみます。
|
|