Есть динамическая библиотека — не Com. Для типов в .VB .Net приложении созданы соответствующие
managed структуры
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)> Public Structure AAAA
'name
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=33)> Public name() As Char
'company name
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=33)> Public company() As Char
'notional open date
End Structure
Public Structure BBBB
'elements count in data array
Public Count As Integer
'data array pointer
'pointer to AAAA[]
'problem field
Public P As IntPtr '?
End Structure
''''''''''''''''''''''''''''''
В коде —
Dim data As IntPtr
' data initialization
Dim bbbb As BBBB
bbbb = Marshal.PtrToStructure(data, bbbb.GetType())
Dim aaaa() As AAAA
aaaa = Marshal.PtrToStructure(bbbb.P, aaaa.GetType())
Такой код не работает. Так как не получается привести указатель на С-массив к managed массиву..
в этом случае получается только привести указатель на первый элемент массива..
То есть меня интересует как можно передавать структуры которые содержат в качестве своих полей
указатели на массивы переменной длины..