2010-07-28 3 views
3

나는 다음과 같이 COM에 노출되는 클래스 라이브러리가 있습니다. 모든 메서드와 속성은 VBA/VB6에서 올바르게 작동하지만 ParamArray를 사용하여 메서드에 액세스하려고하면 이벤트가 컴파일되지 않습니다. 더있다, 나는이 벅이 중지ParamArray 작동하지 않음으로 COM

SomeClass.SomeMethod 1, 2, 3 

답변

3

the function uses an Automation type not supported in Visual Basic.

을? :처럼 그래서 그것을 사용할 수 있습니다 적절하게이 방법을 노출 할 필요가 무엇

Compile error:

Function or interface marked as restricted, or the function uses an Automation type not suppport in Visual Basic.

: 나는 오류를 얻을 VB6의 매개 변수 배열과 동일합니다. ParamArray 키워드를 삭제하십시오. VB6 코드는 Variant 배열을 전달해야합니다. 불쾌한 점, 수업 재 설계를 고려하십시오.

+1

안녕하세요 다시 Obi Wan : VB6/VBA에는 paramarrays가 있지만 byval 객체 배열 대신 byref 변형 배열입니다. 이것이 비 호환성의 원인입니까? – Oorang

+1

이것이 사실이라면 유감입니다. VB6에서 매개 변수 배열을 허용하는 COM 구성 요소를 만들 수는 있지만이 매개 변수 배열은 'Public Sub SomeMethod (ParamArray values ​​() As Variant)'와 같이 변형 배열이어야했습니다. COM interop 항목이 VB.Net ParamArray를 VB6에서 호출 할 수있는 것으로 매핑 할 수 있기를 바랍니다. http://msdn.microsoft.com/en-us/library/aa266305(v=VS.60).aspx – MarkJ

+0

Variant == object. 이 점을 분명히 기억하지 못하고 VB6 문서가 더 이상 필요하지 않습니다. 오래 된 기계를 시작해야 겠어, 1 년 전에 내 무릎 뚜껑을 두드리는 걸 기억해. 후에. –