there is a little problem in marshal translation
From
Public Function RegExpGetStrings(ByRef StringIn As String, ByVal patrn
As String, _
<Out()> ByRef myMatchCnt As Integer, _
<Out()> <MarshalAs(UnmanagedType.LPArray,
ArraySubType:=UnmanagedType.LPStr, SizeParamIndex:=2)> ByRef stringOut As
String(), _
<Out()> <MarshalAs(UnmanagedType.LPArray, SizeParamIndex:=2)> ByRef
myMatchPos As Integer(), _
ByRef as_msg As String) As Integer
...
End Function
to:
public int RegExpGetStrings(ref string StringIn, string patrn, [Out()]
ref int myMatchCnt, [Out()]
[MarshalAs(UnmanagedType.LPArray, ArraySubType=UnmanagedType.LPStr,
SizeParamIndex=2)]
ref string[] stringOut, [Out()]
[MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)]
ref int[] myMatchPos, ref string as_msg)
{
..........
}
And the C# complains on [Out()] with ref; It suggestes [ in() out()]] with
ref