나는 다음과 같이 COM에 노출되는 클래스 라이브러리가 있습니다. 모든 메서드와 속성은 VBA/VB6에서 올바르게 작동하지만 ParamArray를 사용하여 메서드에 액세스하려고하면 이벤트가 컴파일되지 않습니다. 더있다, 나는이 벅이 중지ParamArray 작동하지 않음으로 COM
SomeClass.SomeMethod 1, 2, 3
나는 다음과 같이 COM에 노출되는 클래스 라이브러리가 있습니다. 모든 메서드와 속성은 VBA/VB6에서 올바르게 작동하지만 ParamArray를 사용하여 메서드에 액세스하려고하면 이벤트가 컴파일되지 않습니다. 더있다, 나는이 벅이 중지ParamArray 작동하지 않음으로 COM
SomeClass.SomeMethod 1, 2, 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 배열을 전달해야합니다. 불쾌한 점, 수업 재 설계를 고려하십시오.
안녕하세요 다시 Obi Wan : VB6/VBA에는 paramarrays가 있지만 byval 객체 배열 대신 byref 변형 배열입니다. 이것이 비 호환성의 원인입니까? – Oorang
이것이 사실이라면 유감입니다. 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
Variant == object. 이 점을 분명히 기억하지 못하고 VB6 문서가 더 이상 필요하지 않습니다. 오래 된 기계를 시작해야 겠어, 1 년 전에 내 무릎 뚜껑을 두드리는 걸 기억해. 후에. –