Ein als Type definierten Array an eine dll übergeben ****

N

Nighti

Guten Morgen.

Ich bin neu hier und habe gleich meine erste Frage :p


Ich habe folgenden Code in meinem Projekt :


Visual Basic:
Private Type CPeriodInfo
   lStartPoint As Long
   lStopPoint  As Long
   Typ     	As Byte
End Type
' Machbarkeit <--

Private Sub Main()
   Dim TestArray(10) As CPeriodInfo
   Dim ret   As Long
   Dim Anz   As Long
   Dim Pause As Long
   Dim i 	As Integer
   
   'ReDim TestArray()
   For i = 0 To UBound(TestArray)
  	TestArray(i).lStartPoint = i
  	TestArray(i).lStartPoint = i + 100
  	TestArray(i).Typ = i
   Next i

   ret = GetPeriodInfo(2014, 1, 24, _
                   	2014, 1, 31, _
                   	TestArray(1).lStartPoint + TestArray(1).lStopPoint + TestArray(1).Typ, Anz, 0, 0)

End sub



Mein Problem ist nun, dass ich den Array an eine dll übergeben muss. Leider habe ich gerade gar keine Ahnung wie ich das anstellen soll... Bei der Variante oben kommt:

Fehler beim Kompilieren :

Unverträglicher Typ: Array oder benutzerdefinierter Typ erwartet

Hoffe ihr könnt mir weiterhelfen

LG Nighti
 
Zuletzt bearbeitet von einem Moderator:
Stimme Yaslaw zu: Wie lautet die Declare für die Funktion bzw. wie sieht der C++-Header dafür aus?

ich hab da nämlich so ne Vermutung...
 
Gemäss dieser Seite (wo due ja dieselbe Frage stellst) http://www.vb-paradise.de/programmi...ype-definierten-array-an-eine-dll-uebergeben/
Sieht das so aus, nicht war Dennis336?

Visual Basic:
Private Declare Function GetPeriodInfo Lib "meine.dll" Alias "_GetPeriodInfo@40" ( _
   ByVal wYearStart As Long, _
   ByVal wMonthStart As Long, _
   ByVal wDayStart As Long, _
   ByVal wYearStop As Long, _
   ByVal wMonthStop As Long, _
   ByVal wDayStop As Long, _
   ByRef pOutPInfos() As CPeriodInfo, _
   ByRef pwCountElements As Long, _
   ByVal CheckPause As Long, _
   ByVal TypeFlags As Byte) As Long
 
Und da haben wir auch schon das Problem: Die Funktion erwartet die Adresse zu einem Array deiner Struktur, du übergibst aber einen Wert, welchen du auch noch aus den einzelnen Mitgliedern der Struktur berechnet hast.

Wobei ich mir nicht mal sicher bin, ob deine Declare korrekt ist.
ByRef pOutPInfos() As CPeriodInfo
kommt mir doch sehr seltsam vor.

Ich hätte da eher was in der Art
ByRef pOutPInfos As Any
erwartet
 
Zurück