In VB6, the type you defined as "routStruct" is not valid. You would probably get a compilation error. If you are trying to declare "person" and "number" as arrays, the syntax is incorrect. You will need to use a declaration similar to your "regular" element with an array declaration.
In addition, you declared your type without an access modifier. When you do this, it will be "private" by default. If you exported the VB6 ActiveX DLL to a type library for use in C ++, the type would not be visible, and marshaling would not be possible.
The solution is to configure the type declaration to include the correct VB6 syntax, as well as make the type publication public. Marching native string types becomes BSTR in C / C ++, and there should be no problem.
source share