Der folgende Code tötet VB6 (SP6) mit einem 'unhandled Ausnahmefehler in VB.exe' auf zwei Computern im Büro auf der markierten Zeile.Übergeben von Arrays als Parameter in VB6
''# Form1.frm
Option Explicit
Private ArrayHolder As Class2
Private Sub Command1_Click()
Set ArrayHolder = New Class2
Dim arr(3) As Long
arr(0) = 1
arr(1) = 2
arr(2) = 3
ArrayHolder.Add arr
End Sub
''# -----------------------------------------------------------
''# Class1.cls
Option Explicit
Private m_myArray() As Long
Public Property Get myArray() As Long()
myArray = m_myArray
End Property
Friend Property Let myArray(ByRef anArray() As Long)
m_myArray = anArray
End Property
''# -----------------------------------------------------------
''# Class2.cls
Option Explicit
Friend Function Add(newArray() As Long) As Class1
Dim oClass As Class1
Set oClass = New Class1
oClass.myArray = newArray <- This kills VB6 dead
MsgBox "passed"
End Function
Von dem, was ich auf verschiedenen Websites sagen kann ich ein Array richtig bin vorbei, aber ich bin es eigentlich richtig tun, und warum es verursacht VB6 so schrecklich zu sterben?
Gibt es eine Möglichkeit, auf den Syntax-Highlighter hinzuweisen, welche Sprache er bekommt? –
Sind Sie sicher, dass dieser Code korrekt ist? Der Code in Class2.cls scheint derselbe wie in Form1.frm zu sein. Ist das richtig? –
Dieser Code macht keinen Sinn. Wo ist ArrayHolder.Add? Warum Code in Class2.cls ist wie in Form1.frm? – GSerg