Article ID: 129946
Article Last Modified on 12/9/2003
Sub addx(y As Class1)
Dim x As New Class1
Set y.v = x
End Sub
Sub CircularRef()
Dim x As New Class1
Set x.v = x
Set x.v1 = x
Set x.v2 = x
Set x.v3 = x
Set x.v4 = x
Set x.v5 = x
Set x.v6 = x
Set x.v7 = x
Set x.v8 = x
Set x.v9 = x
Set x.v10 = x
Set x.v11 = x
Set x.v12 = x
Set x.v13 = x
Set x.v14 = x
Set x.v15 = x
Set x.v16 = x
Set x.v17 = x
Set x.v18 = x
Set x.v19 = x
Set x.v20 = x
Set x = Nothing
End Sub
Private Sub Command1_Click()
#If Win32 Then
Dim ut As MEMORYSTATUS
ut.dwLength = 32
GlobalMemoryStatus ut
Print ut.dwAvailPhys
#Else
Dim fspace As Long
fspace = GetFreeSpace(0)
Print fspace
#End If
End Sub
Private Sub Command2_Click()
Dim y As New Class1
Dim x As Class1
Dim i As Integer
For i = 1 To 1000
addx y
Set y = y.v
Next
End Sub
Private Sub Command3_Click()
Dim i As Integer
For i = 1 To 1000
CircularRef
Next
End Sub
#If Win32 Then
Public Type MEMORYSTATUS
dwLength As Long
dwMemoryLoad As Long ' percent of memory in use
dwTotalPhys As Long ' bytes of physical memory
dwAvailPhys As Long ' free physical memory bytes
dwTotalPageFile As Long ' bytes of paging file
dwAvailPageFile As Long ' free bytes of paging file
dwTotalVirtual As Long ' user bytes of address space
dwAvailVirtual As Long ' free user bytes
End Type
Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As _
MEMORYSTATUS)
#Else
Declare Function GetFreeSpace Lib "Kernel" (ByVal wFlags As Integer)_
As Long
#End If
Public v As Variant Public v1 As Variant Public v2 As Variant Public v3 As Variant Public v4 As Variant Public v5 As Variant Public v6 As Variant Public v7 As Variant Public v8 As Variant Public v9 As Variant Public v10 As Variant Public v11 As Variant Public v12 As Variant Public v13 As Variant Public v14 As Variant Public v15 As Variant Public v16 As Variant Public v17 As Variant Public v18 As Variant Public v19 As Variant Public v20 As Variant
Additional query words: 4.00 vb4win vb4all
Keywords: kbprb KB129946