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.
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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&)
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Bonsoir à tous,
On devrait arriver peut-être à cela, mais c'est à vérifier car je ne peux pas essayer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Bonsoir clement
dans ce cas la c'est pas le bon test
c
ce serait plutôt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
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 : Sélectionner tout - Visualiser dans une fenêtre à part sous x64
Partager