ページ 11

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

Posted: 2005年6月04日(土) 20:50
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)

Posted: 2005年6月04日(土) 21:19
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

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

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