SUBに配列を引き渡したいが、これだと動かない???

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
iwao

SUBに配列を引き渡したいが、これだと動かない???

#1 投稿記事 by iwao »

Sub test(ByRef *k As Long)
buffer=Str$(k[0])
MessageBox(0,buffer,"表示テスト",MB_OK)
buffer=Str$(k[1])
MessageBox(0,buffer,"表示テスト",MB_OK)
End Sub

dim k00[2] As Long
k00[0]=1111
k00[1]=2222
test(k00)
tak
記事: 162
登録日時: 2005年5月31日(火) 07:49

#2 投稿記事 by tak »

投稿時に混乱しているようですね。こちらにのみ返信します。
あと、質問の趣旨を本文中にも書いてもらえればたすかります。


まず、本題ではないのですが、変数を宣言しましょう。
これは大前提です。これをしなければコンパイルすら通りません。

引数の部分を少し書き換えます。ポインタの宣言のときは型名の頭に*を付加します。変数名の頭ではありません。
引数は参照渡し(ByRef)ではなく値渡し(ByVal)にします。

コード: 全て選択

Sub test(ByVal k As *Long)
	Dim buffer As String
	buffer = Str$(k[0])
	MessageBox(0, buffer, "表示テスト", 0)
	buf = Str$(k[1])
	MessageBox(0, buffer, "表示テスト", 0)
End Sub
最後に編集したユーザー tak [ 2005年6月06日(月) 19:32 ], 累計 1 回
iwao

有難うございました、参考のソースをコンパイルして動作して見ま

#3 投稿記事 by iwao »

配列の宣言も了解しました、ByValという意味は、まだ解りませんが、使用して行き、見ていきたいと思います。
2番目のbufferラベルは直してコンパイルし成功しました。
ポインター操作は苦手ですが簡単に使えれば良いなと思います。
マニヤルは全て読んで見ましたが、Win32プログラミング講座のStep15ぐらいから難しくなってきました。
返信する