DLL kald med "Type"
Skal kalde en DLL der åbenbart er skrevet i Delphi.I dokumentationen står der at ved kald med Visual Basic skal der defineres en Type med en masse data (double, single) i. Nu kan jeg jo ikke definere en type i VB.net på den måde så hvad gør jeg?
Jeg har prøvet at definere en class, men den crasher big time. (System.ExecutionEngineException kan ikke engang reddes med en try/catch).
Interessant nok, så crasher kaldet ikke når jeg giver den dårlig input, altså at den afviser at beregne fordi input er tosset. Det virker som om at det først er når den skal til at skrive i denne type struktur at det går galt. Det er jo nok fordi den hukommelse den tror den kan skrive i ikke svarer overens med den jeg har stillet til rådighed...
Dokumentationen ser således ud til "Visual Basic" uden nogen angivelse hvilken version.
Type TDesignData
O_OP1 As Long
O_OP2 As Long
O_Q1 As Double
O_Q2 As Double
O_QU1 A osv osv
End Type
Declare Function CopyDesign Lib "OS43.DLL" _
(ByVal I_RPath As String, ByVal I_Flags As Long, ByVal I_Typ As String, _
ByVal I_CC As Long, ByVal I_Ref As String, ByVal I_Q As Double, _
ByVal I_T0 As Double, ByVal I_TC As Double, ByVal I_TS As Double, _
ByVal I_TL As Double, ByVal I_TM As Long, ByVal I_TLC As Double, _
ByVal I_TOC As Long, ByVal I_TOL As Double, ByVal I_TN As Double, _
ByVal I_OP As Long, ByVal I_SP As Single, ByVal I_CR As Single, _
ByVal O_T1 As String, ByRef O_SzT1 As Long, ByVal O_T2 As String, _
ByRef O_SzT2 As Long, ByRef DesignData As TDesignData, _
ByRef O_Hint1 As Long, ByRef O_Hint2 As Long, ByVal O_Err As String, _
ByRef O_SzErr As Long) As Long
Jeg har gennemskuet Long bliver til Integer i VB.NET.
Jeg har fået O_Err og O_SzErr til at virke i andre DLL kald i samme DLL. Det er kun disse dll med "Type" kald der crasher.
På forhånd tak