2011-07-06 3 views
1

私はVB6で奇妙に思われるものに遭遇しました。私は、MyMethod(ByRef object)というシグネチャを持つメソッドにチェックボックスを渡して、それをmyClass.MyMethod chkMyCheckboxと呼んでいます。 VB6は、しかし、チェックボックス自体を渡すことを拒否し、代わりに1への参照を私のメソッドに渡します。 VB6でオブジェクトの既定のプロパティがどのように指定されているかと関係していると思います。 .Valueだけでなく、オブジェクト全体をどのように渡すことができますか?大量のレガシーコードは、それらに大きく依存するため、デフォルトプロパティを無効にすることはできません。あなたが見ることができるようにチェックボックスを参照するにはどうしたらいいですか?

Typing discrepancy

ChkCalFaultはチェックボックスではなく整数であるが、その整数値として評価して渡されています。 (このスクリーンショット0にある。)私はあなたが私はこれがオフベースであれば謝罪コードでやろうとしてものを見ることはできませんが、

MyMethod(ByRef MyCheckBox as CheckBox) 

にあなたのメソッドのシグネチャを変更するでしょう

答えて

2

あなたのために働く?そうでない場合は、文書化されていないVarPtrがチェックボックスオブジェクトのアドレスを取得しますが、正しい方向に向いているかどうかはわかりません。

+0

この回答は正しい方向を示している可能性があります。ここではチェックボックスをオブジェクトとして渡すのではなく、 'As'部分を省略したためにバリアントとして渡します。 MyMethodを試してみよう(ByRef MyCheckBoxをオブジェクトとして) – Dabblernl

関連する問題