Avatar billede thlund Nybegynder
20. juni 2010 - 09:30 Der er 4 kommentarer og
1 løsning

VB6 array i VB.Net dll kald

Hej

Arbejder stadig med de dll'er.

havde tidligere problem med at VB6 "Type" skulle laves om til "Structure" samt at Long blev til Integer. Det virker så fint nu, men en enkelt af dll funtionerne bruger arrays og så fejler jeg igen... System.ExecutionEngineException som er temmelig total.

her er specifikationen fra leverandøren, som så er i VB6

Declare Function CopyDesign Lib " LWV32.DLL" _
(ByVal blablabla _
ByRef O_SzTTyp As TSzTTypAry, ByRef O_TData As TDataAry, _
mere blablabla) as Long

with 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

O_SzTTyp er som vist et array af 4 integers
O_TData er et array af 4 af TDataRec structures

Hvordan får jeg specificeret dette så kaldet går igennem. Når jeg kalder med dårlige data, altså noget som den afviser at beregne, er der ingen problem, men det forekommer mig at så snart den skal til at skrive i data strukturerne så går det galt.

Hvordan gør jeg det. Beklager - har aldrig lavet vb6
Avatar billede arne_v Ekspert
20. juni 2010 - 20:06 #1
Hvad sker der ved det helt banale at erklære parameterne til ByRef og bare kalde med normale VB.NET arrays?
Avatar billede thlund Nybegynder
21. juni 2010 - 09:12 #2
Declare Function CopyDesign Lib "LWV32.DLL" _
                (ByVal bla bla bla
                ByRef O_SzTTyp() As Integer, ByRef O_TData() As TDataRec, _
                mere bla bla) As Integer

    Dim datrec(3) As TDataRec
        Dim lns2(3) As Integer

Dette giver "System.ExecutionEngineException", et crash der ikke engang kan reddes af at være i en Try/catch blok...
Avatar billede thlund Nybegynder
04. oktober 2010 - 11:40 #3
Jeg har fået en ny definition fra leverandøren, så nu virker det

Arne - læg lige et svar så får du credit
Avatar billede arne_v Ekspert
05. oktober 2010 - 04:27 #4
Jeg tror at jeg springer over her.
Avatar billede thlund Nybegynder
05. oktober 2010 - 08:31 #5
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester