ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月29日(金) 22:07

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 1 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2006年3月02日(木) 19:50 
オフライン

登録日時: 2005年5月31日(火) 20:14
記事: 203
お住まい: 兵庫県
コード:
#prompt
Sub test(p As VoidPtr)
	SetByte(p,&H30)
End Sub

Dim Buf As String
Buf="123"
test(Buf)
Print Buf
このコードで、Bufの内容が "123" のままになってしまいます。
いろいろ試してみたところ、VoidPtr型の変数にString型を代入しようとするとエラーになりますが、VoidPtr型の引数にString型を指定してもエラーになりません。
さらに、このとき関数側では渡された引数の値がおかしくなっていますが、ちゃんと "123" という文字列へのポインタを指していて、アクセス違反も起こりません。
これが仕様だとしても使う側が混乱するので(*Byteを使え、と言われるかもしれませんが、WriteFileやReadFileなどAPIに関しても同様のことがいえるようで、VoidPtr型に関してStrPtr関数は省略できるのかできないのかがはっきりしません)、このような例も正常に動くようにするか、あるいはエラーではじくようにしていただけないでしょうか?

Ver 4.21.00で以上の動作を確認。

_________________
[hira]
http://hira.hopto.org/


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 1 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[18人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean