Hi, (.Net 2.0)
an AX-DLL written in VB6 is imported by tlbimp.
VB6 code:
Public Type SAKomplexRecord
....
End Type
Public Type SAKomplex
Records() As SAKomplexRecord
End Type
IDL: (from original VB6 DLL)
typedef [uuid(.....), version(1.0)]
struct tagSAKomplex {
[helpstring("Records")
]
SAFEARRAY(SAKomplexRecord) Records;
} SAKomplex;
typedef [uuid(.....), version(1.0)]
struct tagSAKomplexRecord {
.....
} SAKomplexRecord;
Problem:
In VB.Net, referencing the imported file, the declaration of
SAKomplex.Records is
"Public Records As System.Array".
I expect it to be
"Public Records() As Projectname.SAKomplexRecord".
Why is this? In the same library, there is another structure containing an
array of structures. There it works.
Armin
Armin Zingler - 19 Jul 2007 01:01 GMT
> Hi, (.Net 2.0)
>
> an AX-DLL written in VB6 is imported by tlbimp.
I assumed that the Upgrade wizard that converts a VB6 project to VB.Net,
internally only calls tlbimp.exe. That's why I asked for tlbimp.exe. In
reality, I used the upgrade wizard (and not tlbimp), which obviously
internally uses "/sysarray" to create the interop assemblies.
If I manually call tlbimp.exe, the result is fine, so this problem is
solved. Anyway thx for reading.
Armin