2011-07-06 5 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'부분을 생략했기 때문에 Variant로 전달합니다. MyMethod 사용 (ByRef MyCheckBox를 Object로 사용) – Dabblernl

관련 문제