VB6 til dotnet - arrays i dll kald
Har fået en dll af en leverandør. Deres specifikation er i VB6 mens jeg bruger .net 2008. Jeg har fået bugt med de fleste ting med det, men i en enkelt routine bruger de array's og det giver mig en del problemer.I deres deklaration skriver de
ByRef O_SzTTyp As TSzTTypAry, ByRef O_TData As TDataAry,
hvor
Type TSzTTypAry (1 To 4) As Long
Type TDataRec
O_TypNo As Long
O_Pass As Long
O_QC As Double
O_TC As Double
O_TWA As Double
O_VI As Double
O_WI As Double
O_DP As Double
End Type
Jeg tror det er en fejl at de ikke angiver TDataAry, men udfra sammenhængen må den være
Type TDataAry (1 To 4) of TDataRec
ok. Jeg har prøvet man kombinationer og dette er en af dem:
ByRef O_SzTTyp() As Integer, ByRef O_TData() As TDataRec,
hvor
Dim lns2(3) As Integer
Dim datrec(3) As TDataRec
Dette får kaldet til at give "Der blev udløst en undtagelse af typen 'System.ExecutionEngineException'."
Denne fejl fangen ikke engang af en try/catch, sååå det er noget helt galt. Jeg kan sige at hvis jeg ikke giver den korrekt input, altså en værdi den ikke vil regne på så kommer den ok tilbage. Det jeg fortolker det som er at den tjekker værdiernes gyldighed og hvis de er ok så begynder den at regne og så skrive data i TdataRec'erne - og det er så der det går galt... Hvis den afviser at regne så går det godt fordi den ikke skriver i TDataRec'erne...
Forslag ?