Hallo,
ich hätte eine große bitte. Ich muss eine API-Deklaration über VBA machen. Da entsteht aber das Problem zwischen 32- und 64-bit Version des Excels.
API-Deklaration sieht jetzt so aus:
' API-Deklaration
#If VBA7 And Win64 Then
Private Declare PtrSafe Sub CopyMemory Lib "kernel32" _
Alias "RtlMoveMemory" ( _
Destination As Any, _
Source As Any, _
ByVal Length As Long)
#Else
Private Declare Sub CopyMemory Lib "kernel32" _
Alias "RtlMoveMemory" ( _
Destination As Any, _
Source As Any, _
ByVal Length As Long)
#End If
Und diese Deklaration ist nur in 1 Methode aufgerufen, wo ich auf das Problem mit "Typen unverträglich" draufgestoßen bin:
Public Function GetArrayDim(ByRef vArray As Variant) As Integer
' Handelt es sich überhaupt um ein Array?
Dim DimCount As Integer
DimCount = -1
If IsArray(vArray) Then
Dim vPtr As Long
DimCount = 0
vPtr = VarPtr(vArray) + 8
CopyMemory vPtr, ByVal vPtr, 4
CopyMemory vPtr, ByVal vPtr, 4
If vPtr Then
CopyMemory DimCount, ByVal vPtr, 2
End If
End If
GetArrayDim = DimCount
End Function
Bitte um Hilfe. DANKE
|