Salut,
J'ai lu cette discussion.
J'utilise ce code qui fonctionne parfaitement avec une version de Windows en 32 bit mais pas en 64.
Comment le modifier pour qu'il accomplisse la même fonction mais sous x64?
Merci d'avance :).
Version imprimable
Salut,
J'ai lu cette discussion.
J'utilise ce code qui fonctionne parfaitement avec une version de Windows en 32 bit mais pas en 64.
Comment le modifier pour qu'il accomplisse la même fonction mais sous x64?
Merci d'avance :).
Bonjour,
Je viens de l'essayer avec Windows 10 64 bits, et cela fonctionne parfaitement.
Et personne n'a de boule de cristal...
bonjour
allons clement!!!
dis moi encore que cette déclaration d'api fonctionne en 64 bits
surtout avec la user32 hein!!!!Code:
1
2
3
4
5
6 Option Explicit Private Declare Function GetDC& Lib _ "user32.dll" (ByVal hwnd&) Private Declare Function GetDeviceCaps& _ Lib "gdi32" (ByVal hDC&, ByVal nIndex&)
Bonsoir à tous,
On devrait arriver peut-être à cela, mais c'est à vérifier car je ne peux pas essayer.
Code:
1
2
3
4
5
6
7
8
9 #If Win64 Then Dim hwnd As LongPtr, hDC As LongPtr, nIndexPtr As LongPtr Private Declare PtrSafe Function GetDC& Lib "user32.dll" (ByVal hwnd&) Private Declare PtrSafe Function GetDeviceCaps& Lib "gdi32" (ByVal hDC&, ByVal nIndex&) #Else Dim hwnd As Long, hDC As Long, nIndex As Long Private Declare Function GetDC& Lib "user32.dll" (ByVal hwnd&) Private Declare Function GetDeviceCaps& Lib "gdi32" (ByVal hDC&, ByVal nIndex&) #End If
Bonjour,
Ah oui, je l'ai testé. Son problème ce n'est pas un Windows 64 bits, mais un Office 64 bits. Un Office 32 bits fonctionne en SYSWOW32 et n'a pas besoin de modifier les déclarations de l'API, mais un Office 64 bits doit adapter les déclarations. Mais comme la question c'était :
j'ai répondu pour sous x64.Code:sous x64
re
hophophop
les variables n'ont pas besoins de ptr car elle sont en dehors des déclarations des apis donc pas besoins de les dupliquer dans chaque mode
j'ai aussi des doutes sur "devicecaps" je ne suis pas sur que cela soit necessaire seul la user 32 doit subir la transformation
on en mettre qu'une seul donc apres le "#end if "
voila
Bonsoir clement
dans ce cas la c'est pas le bon test
c
ce serait plutôt
Code:
1
2
3
4
5 #if VBA7 then 'declaration api avec ptrsafe et longptr pour la user (Attention!!!pas forcement pour toute les autre dll ) #else ' declaration classique #end if