Problème Appel API non managée en VB.Net

Résolu
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 - 8 avril 2006 à 09:45
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 - 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 ==

2 réponses

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
8 avril 2006 à 11:34
SAlut,
Regarde la signature de CallNextHookEx
http://www.pinvoke.net/
http://custom.programming-in.net/
3
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
9 avril 2006 à 12:18
Merci !

@Z3RtY25 ==
0
Rejoignez-nous