slt à tous,
j'ai reuissit à trouver la DLL winusb.DLL sur le net mais lors de l'ajout comme reférence en C# un message s'affiche " la dll n'est pas accesible" est-ce que qq'un peut m'aider??
slt à tous,
j'ai reuissit à trouver la DLL winusb.DLL sur le net mais lors de l'ajout comme reférence en C# un message s'affiche " la dll n'est pas accesible" est-ce que qq'un peut m'aider??
Je ne connais pas cette DLL mais es tu sur qu'il s'agit d'une assembly .Net ? j'en doute fort.
Dans le cas contraire, tu ne peux pas la référencer dans ton projet et tu dois importer les fonctions qu'elle expose en les déclarant sous la forme
(pour le détail voir la doc de l'API de ta DLL).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [DllImport("WinUsb.dll", CallingConvention = CallingConvention.StdCall, EntryPoint = "MyFunction")] static unsafe extern IntPtr MyFunction([MarshalAs(UnmanagedType ....)] myType myParam .... etc );
merci pour ta réponce mais c est une dll installé au OS vista et etles autre OS récent,
C# l'utilise pour intgerer la technologie des USB ( pour communiquer avec les ports USB du PC ) voila l'ensemble de ces fonction
mais je vais essayer ta réponce pour voir si sa marche ..
Je viens de regarder sur le lien que tu as fourni et cela confirme donc entièrement ce que j'écrivais supra.
Cette DLL exporte des fonctions, en convention d'appel standard (__stdcall) , et pas des objets .Net.
Donc tu dois passer par des appels P/Invoke en déclarant les fonctions selon la méthode décrite au dessus.
C'est assez logique car elle doit pouvoir être exploitée par des client en C, par exemple, ce qui serait impossible pour une assembly .net qui n'est exploitable que par un client .Net
merci infiniment pour ta réponse,
Mais juste une dernière chose tu peux déclaré une fonction de ce lien(que j'ai mis)
comme titre d'exemple ? en fait je fait un stage et je suis amateur en ce langage donc si tu m'aide encore car j'ai utilisé ta méthode de déclaration et ça se voit j'ai pas réussit
merci encore ..
Par exemple pour WinUsb_FlushPipe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [DllImport("WinUSB.dll", CallingConvention = CallingConvention.StdCall, EntryPoint = "WinUsb_FlushPipe ")] static unsafe extern bool WinUsb_FlushPipe ([MarshalAs(UnmanagedType.I4)]int handle, [MarshalAs(UnmanagedType.U1)] byte pipeID);
Sans garantie, n'ayant pas la DLL sous la main.
Partager