|
dev
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
vb array tolegacy C applI have a VB COM class TestArrClass Imports System.Runtime.Remoting Imports System.Runtime.InteropServices <ComClass(TestArrClass.ClassId, TestArrClass.InterfaceId, TestArrClass.EventsId)> _ Public Class TestArrClass Public Function atestIntStrArr(ByVal aiLen As Integer, _ <MarshalAs(UnmanagedType.LPArray, ArraySubType:=UnmanagedType.LPStr, _ SizeParamIndex:=1)> ByRef astr As String(), _ <MarshalAs(UnmanagedType.LPArray, SizeParamIndex:=1)> ByRef aiPosn() _ As Integer) _ As Integer Dim IntArr() As Integer = {0, 1, 2, 3, 4, 5} Dim iarr() As Integer Dim lstrArr() As String = {"X", "Y", "A", "c", "d", "F"} iarr = lstrArr.Clone() If aiLen >= 6 Then aiLen = 6 astr = lstrArr.Clone() Return aiLen ElseIf aiLen > 0 Then ReDim Preserve lstrArr(aiLen) astr = lstrArr.Clone() Return aiLen Else aiLen = 0 End If Return aiLen End Function When I called from the C_application I got a vague message of --------------------------- Application Execution Error (R0035) --------------------------- Application terminated. Error: Error calling external object function TestArrClass at line 6 in clicked event of object cb_3 of w_formx. If I call from vbscript set TestArrClass = createObject("TestArrClass.TestArrClass") iLen = TestArrClass.atestIntStrArr (aiLen, str_results , iarr) ' gives "Microsoft VBScript runtime error: Variable uses an Automation type ' not supported in VBScript:: testIntStrArr'" what did I do wrong? Should I have a different call prototype for VBSCRIPT versus C style application? |
|||||||||||||||||||||||