J'ai des fonctions qui savent convertir une structure POINTAPI en LongLong.
Mais j'aimerais convertir directement 2 Long en 1 LongLong (le premier sur les 32 premiers bits, le deuxième sur le 32 derniers).
Par quoi multiplier le 1er ? 2 ** 32 ? Avant d'ajouter le 2ème. Ça ne marche pas !
Merci par avance.
Sinon je mets dans ce post-solution cette conversion simple qui fonctionne... jusqu'à preuve du contraire !
VB:
#If Win64 Then
Function TwoLongToLongLong(X As Long, Y As Long) As LongLong
TwoLongToLongLong = Y * 2 ^ 32 + X
End Function
#End If
Ou encore:
Code:
Private Type POINTAPI
X As Long
Y As Long
End Type
#If Win64 Then
Function POINTAPIToLongLong(Pt As POINTAPI) As LongLong
POINTAPIToLongLong = Pt.Y * 2 ^ 32 + Pt.X
End Function
#End If