未知の文字列を開放しようとしました?。

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 未知の文字列を開放しようとしました?。

by Uhsp » 2005年12月19日(月) 15:29

>
Uhsp さんが書きました:Bu = Bx 'この部分?
> 文字列Byte型のデータを代入する際は、MakeStr関数を使用します。
>

コード: 全て選択

Bu=MakeStr(Bx)
> 多分これで直ると思います。

ありがとうございます。
この部分は現状エラーにならないのですが修正してみます。
(もしかしたらcommand.sbpでエラーがでていたかもしれません)

by マティ » 2005年12月19日(月) 09:15

Uhsp さんが書きました:Bu = Bx 'この部分?
文字列Byte型のデータを代入する際は、MakeStr関数を使用します。

コード: 全て選択

Bu=MakeStr(Bx)
多分これで直ると思います。

by Uhsp » 2005年12月18日(日) 23:13

> lstrcpy関数で文字列を連結していませんか?
> lstrcpy関数をString型で使用する必要がある場合は、
> ZeroString関数で事前に(必要とする領域分)バッファーを確保して下さい。

ご返信ありがとうございます。
lstr~関係の命令は私の場合、色々問題があったので使用していません
しかしAPIの関係で(EM_GETLINEなど先頭にサイズが必要な場合)は
Dim xx[1024] as Byteを使用しておりますがこの場合は使用していません。
(Dim ss as string :ss=ZeroString(1024)も使用していますがlstr~は無い)

dim zz TCITEM をコメントアウトすることで解決しますし、
コノ部分を実行していなくてもメッセージが出てしまうので不思議です。

現状は pszText as BytePtr でメッセージは出ないのですが下記のコード
は使用法がまちがってますでしょうか。

コード: 全て選択


 Dim Bu       as STRING
 Dim Bx[1024] as BYTE
 Bu  =   ZeroString(1024)

 SetWord(Bx,1024)
 SendMessage(.hoHnd,SW,N1,Bx as LONG)
 Bu  = Bx 'この部分?

by マティ » 2005年12月18日(日) 18:27

lstrcpy関数で文字列を連結していませんか?
lstrcpy関数をString型で使用する必要がある場合は、ZeroString関数で事前に(必要とする領域分)バッファーを確保して下さい。

未知の文字列を開放しようとしました?。

by Uhsp » 2005年12月18日(日) 14:02

 下記の構造体で[pszText as STRING]と定義すると機能上は問題ないの
ですが、
”未知の文字列を開放しようとしました”とメッセージ?が出てしまい
エラー行が特定出来ないので原因にたどり着くのに手間取りました。

他の構造体に習って[pszText as BytePtr]とし解決できましたが、
Dim で定義してあるだけでメッセージが発生するので何が問題なのか
解りません、どなたか教えていただけませんか?。

コード: 全て選択


 Type TCITEM
      mask         as  LONG
      dwState      as  LONG
      dwStateMask  as  LONG
      pszText      as  BytePtr
'     pszText      as  STRING
      cchTextMax   as  LONG
      iImage       as  LONG
      lParam       as  LONG
 End Type

ページトップ