- 締切済み
値(参照)渡しでの引数(構造体)のデータ型
Typeで構造体をいくつか宣言して、それをクリアする関数 を作ろうとしています。どんな構造体がきてもOKなように 作りたいんですが、???の部分にどうかけばいいかが わかりません。こういうのって無理なんでしょうか? Sub Test(ByVal 構造体 As ???) '構造体のクリア Call ZeroMemory(構造体, Len(構造体)) End Function ある構造体のみと考えればわかるんですが、どれでもOKと なるとわかりません・・・同じようなことでもいいので、 何かいい方法はないでしょうか?よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.3
このAPIを使うのが楽でしょう Declare Sub ZeroMemory Lib "KERNEL32" Alias "RtlMoveMemory" (dest As Any, ByVal numBytes As Long)
- todo36
- ベストアンサー率58% (728/1234)
回答No.2
ユーザー定義型をPublicクラスで定義した場合は、関数側で ByRef ~ As Variantで 受け取ればいいらしい。(某MLの情報) >構造体のクリア >Call ZeroMemory(構造体, Len(構造体)) 構造体が可変長文字列や動的配列を含んでいると拙いと思うが..
質問者
お礼
回答ありがとうございます。 いろんな構造体となるとまずいようですね・・。 参考にさせて頂きます!ありがとうございました。
- sorarisp
- ベストアンサー率58% (7/12)
回答No.1
Objectで試してみましたか? 実際にテストしていないので旨くいくか分かりませんが。
質問者
お礼
回答ありがとうございます。 ???のところをObjectってことですよね? 構造体を渡すと型が一致しませんとなります。
お礼
回答ありがとうございます。 このAPIに飛ばす関数を作ろうとしています。 クリアするときに、このAPIを使えばいいだけなんですけど・・。 もう少しやってみます。ありがとうございました。