Aşağıdaki kod VB6'yı (sp6) VB.exe'de 'işlenmeyen bir özel durum hatasıyla' işaretli hatta ofiste bulunan iki makinede öldürür.Dizilerin VB6 olarak parametre olarak geçirilmesi
''# 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
Ben doğru bir dizi geçirerek ama aslında doğru yapıyorum çeşitli web sitelerinde söyleyebileceğim
ve neden VB6 korkunç derecede ölüme neden oluyor?
Sözdizimi vurgulayıcıya hangi dilde ulaşabileceğine dair bir ipucu var mı? –
Bu kodun doğru olduğundan emin misiniz? Class2.cls içindeki kod, Form1.frm'deki ile aynı gibi görünüyor. Bu doğru mu? –
Bu kod anlam ifade etmiyor. ArrayHolder.Add nerede? Neden Class2.cls'deki kod, Form1.frm'deki ile aynı? – GSerg