tagCANDY CGI VBレスキュー(花ちゃん) - 配列の値と個数を引数として渡す(VB6.0) - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
配列の値と個数を引数として渡す(VB6.0)
元に戻る スレッド一覧へ 記事閲覧
このページ内の検索ができます。(AND 検索や OR 検索のような複数のキーワードによる検索はできません。)

配列の値と個数を引数として渡す(VB6.0) [No.93の個別表示]
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
日時: 2009/12/27 12:39
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[基本コード][][]                                              *
* キーワード:配列処理,プロシージャ,複数の引数,関数,複数の戻値,配列処理関数       *
***********************************************************************************

元質問:配列の値と個数を引数として - TM  2004/10/05-18:41 No.556

標記の件ですが、たとえば
Private Sub AAA()
  Dim a(2) As Integer
  a(0) = 1
  a(1) = 2
  a(2) = 3
  Call BBB(2, a(0))
End Sub

Private Sub BBB(b As Integer, c As Variant)
  Dim i As Integer
  For i = 0 To b
    Call MsgBox(c(i))
  Next i
End Sub

実行結果: 1    2    3

のようなことをやりたいのです。
つまり、配列の個数と、配列の最初の値を引数で渡すと、その個数分のデータを参照できる関数を作りたいのですが、当然のことながらcに1が代入されるだけなので上記ではエラーになってしまいます。
Call BBB(a)
Private Sub BBB(d() As Integer)
とすれば配列で渡せるのは知っているのですが、既存の通信パッケージの関数が上記の形となっていてそのボードがない時のシミュレーションを行いたいため、引数の形を同じにしなければなりません。
パッケージがやっているので、できないことはないのでしょうが、私には方法がわかりません。よろしくお願いします。


---------------------------------------------------------------------------
Re: 配列の値と個数を引数として - YAS  2004/10/05-23:29 No.560
---------------------------------------------------------------------------

配列をポインタで渡しているようなので,以下のようになると思います。
BBBでは必要なメモリを配列で確保して,APIでコピーしています。

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Private Sub AAA()
  Dim a(2) As Integer
  a(0) = 1
  a(1) = 2
  a(2) = 3
  Call BBB(2, a(0))
End Sub

Private Sub BBB(b As Integer, c As Integer)
  Dim a() As Integer
  ReDim a(b)
  Call CopyMemory(a(0), c, LenB(c) * (b + 1))
  Dim i As Integer
  For i = 0 To b
     Call MsgBox(a(i))
  Next i
End Sub
メンテ

Page: 1 |

 投稿フォーム               スレッド一覧へ
題  名 スレッドをトップへソート
名  前
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存   
スレッド一覧へ