Problème Appel API non managée en VB.Net [Résolu]

cs_azerty25 1115 Messages postés jeudi 19 décembre 2002Date d'inscription 6 mai 2007 Dernière intervention - 8 avril 2006 à 09:45 - Dernière réponse : cs_azerty25 1115 Messages postés jeudi 19 décembre 2002Date d'inscription 6 mai 2007 Dernière intervention
- 9 avril 2006 à 12:18
Bonjour
Je code avec VS Express 2005, et j'ai un soucis en appelant CallNextHookEx.

J'ai les extraits de code suivant :


Private
Declare
Function CallNextHookEx
Lib
"user32" _


(
ByVal hHook
As
Integer, _



ByVal nCode
As
Integer, _



ByVal wParam
As
Integer, _



ByVal lParam
As KBDLLHOOKSTRUCT)
As
Integer



Private
Structure KBDLLHOOKSTRUCT



Public vkCode
As
Integer



Public scanCode
As
Integer



Public flags
As
Integer



Public time
As
Integer



Public dwExtraInfo
As
Integer



End
Structure

Et j'ai aussi une fonction qui se présente comme cela :

Private
Function KeyboardCallback(
ByVal Code
As
Integer, _



ByVal wParam
As
Integer, _



ByRef lParam
As KBDLLHOOKSTRUCT)
As
Integer



[...]

Return CallNextHookEx(KeyboardHandle, _


Code, wParam, lParam)



End
Function

Et quand je fais CallNextHookEx, j'ai l'erreur suivante.

Un appel à la fonction PInvoke 'KBHook!KBHook.KeyboardLowLevelHook::CallNextHookEx' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible.

Sur la MSDN, il dise qu'il faut utiliser des Marshall pour que les types de données soient les mêmes entre le framework et l'api mais j'ai pas vraiment saisi :(
Sauriez vous comment faut-il faire ?
Ce code je l'ai eu sur PSC, il fonctionne sur VS2003 mais pas sur le 2005 Express que j'ai :o

@Z3RtY25 ==
Afficher la suite 

2 réponses

cs_Willi 2381 Messages postés jeudi 12 juillet 2001Date d'inscription 13 février 2015 Dernière intervention - 8 avril 2006 à 11:34
+3
Utile
SAlut,
Regarde la signature de CallNextHookEx
http://www.pinvoke.net/
http://custom.programming-in.net/
Cette réponse vous a-t-elle aidé ?  
cs_azerty25 1115 Messages postés jeudi 19 décembre 2002Date d'inscription 6 mai 2007 Dernière intervention - 9 avril 2006 à 12:18
0
Utile
Merci !

@Z3RtY25 ==

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.