XL 2016 VBA - Convertir 2 Long en LongLong

Dudu2

XLDnaute Barbatruc
Bonjour,

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.
 
Dernière édition:
Solution
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

Discussions similaires

Réponses
12
Affichages
311

Statistiques des forums

Discussions
312 211
Messages
2 086 292
Membres
103 171
dernier inscrit
clemm