• 締切済み

値(参照)渡しでの引数(構造体)のデータ型

Typeで構造体をいくつか宣言して、それをクリアする関数 を作ろうとしています。どんな構造体がきてもOKなように 作りたいんですが、???の部分にどうかけばいいかが わかりません。こういうのって無理なんでしょうか? Sub Test(ByVal 構造体 As ???) '構造体のクリア Call ZeroMemory(構造体, Len(構造体)) End Function ある構造体のみと考えればわかるんですが、どれでもOKと なるとわかりません・・・同じようなことでもいいので、 何かいい方法はないでしょうか?よろしくお願いします。

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

このAPIを使うのが楽でしょう Declare Sub ZeroMemory Lib "KERNEL32" Alias "RtlMoveMemory" (dest As Any, ByVal numBytes As Long)

hoturon
質問者

お礼

回答ありがとうございます。 このAPIに飛ばす関数を作ろうとしています。 クリアするときに、このAPIを使えばいいだけなんですけど・・。 もう少しやってみます。ありがとうございました。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

ユーザー定義型をPublicクラスで定義した場合は、関数側で ByRef ~ As Variantで 受け取ればいいらしい。(某MLの情報) >構造体のクリア >Call ZeroMemory(構造体, Len(構造体)) 構造体が可変長文字列や動的配列を含んでいると拙いと思うが..

hoturon
質問者

お礼

回答ありがとうございます。 いろんな構造体となるとまずいようですね・・。 参考にさせて頂きます!ありがとうございました。

  • sorarisp
  • ベストアンサー率58% (7/12)
回答No.1

Objectで試してみましたか? 実際にテストしていないので旨くいくか分かりませんが。

hoturon
質問者

お礼

回答ありがとうございます。 ???のところをObjectってことですよね? 構造体を渡すと型が一致しませんとなります。

関連するQ&A