Je contrôle mon périphérique USB auto-conçu en utilisant l'interface SCSI avec C en ouvrant une poignée de fichier, ioctl et en utilisant la structure sg_io_hdr_t. Je dois concevoir une interface graphique, et je devrais le faire avec C#. Je ne suis pas trop familier avec C#. U pourrait suggérer une façon de le faire avec C#envoyer des commandes SCSI en utilisant C#
0
A
Répondre
0
Vous avez quelques options
1- Utilisez p/invoke (plate-forme Invoke) interopérabilité. En utilisant cela, vous pouvez faire l'une des deux choses. Utilisez p/invoke pour appeler l'API Win32 à partir de .NET, vous pouvez également écrire un dll C qui exporte une interface simplifiée pour contrôler le périphérique, puis l'interopérer avec cette DLL.
2- Vous pouvez utiliser managed C++ et créer une bibliothèque que vous pouvez appeler à partir de C#.
3- Vous pouvez envelopper votre code C en tant qu'objet COM et utiliser COM interop depuis C#.
Puisque vous avez probablement un code C de travail, je pense que le plus simple serait de créer une DLL qui exporte un facile d'invoquer l'interface, puis utiliser P/Invoke pour appeler que de C#
Questions connexes
- 1. Envoyer des commandes IMAP à GMail en utilisant C#
- 2. Comment envoyer des commandes FTP arbitraires en C#
- 3. Comment envoyer/recevoir des SMS en utilisant les commandes AT?
- 4. Comment envoyer des commandes AT GSM en utilisant python?
- 5. Comment envoyer des SMS en utilisant C#
- 6. envoyer des données internet en utilisant C
- 7. Envoyer une commande SCSI spécifique à un périphérique SCSI sous Windows
- 8. Y at-il un moyen facile d'envoyer SCSI passthrough sur OSX en utilisant natif python
- 9. envoyer des commandes à des jobs en arrière-plan stdin
- 10. Envoyer des commandes html sur httpclient android
- 11. Envoyer un SMS en utilisant C#
- 12. Assistance portage des commandes commctrl en C#
- 13. Comment utiliser TIdTelnet pour envoyer des commandes?
- 14. envoyer AT COMMANDES
- 15. comment envoyer du courrier en utilisant C#?
- 16. Envoyer du courrier en utilisant C#
- 17. mysql: puis-je envoyer des messages de débogage au fichier journal en utilisant les commandes mysql?
- 18. android ouvrir la socket et envoyer des commandes
- 19. Envoyer des tweets en utilisant Android
- 20. Envoyer des commandes entre deux ordinateurs via Internet
- 21. Recevoir et envoyer des données en C#
- 22. envoyer des commandes à une fenêtre/un processus démarré à partir d'un fichier de commandes
- 23. comment exécuter un fichier de commandes en utilisant C++?
- 24. Problème, exécution de commandes dans cmd en utilisant C#
- 25. Comment envoyer des événements en C#
- 26. C# envoyer des courriels
- 27. Obtenir le nom du fournisseur de SCSI
- 28. commandes Run PowerShell en C#
- 29. AT commandes pour envoyer et recevoir un SMS en utilisant un modem ZTE MF637U
- 30. Script batch pour envoyer des commandes à mySQL db?
Chris, merci pour votre rapide répondre. Mon problème est que mon application ne devrait pas nécessiter de source externe. Je pense que c'est un problème pour utiliser une DLL. J'ai commencé à utiliser la méthode p/invoke et j'ai ouvert le périphérique avec CreateFile. Mais je ne suis pas sûr comment je peux simuler la structure de sg_io_hdr_t. Toute suggestion? – user168574
@ user168574, je n'ai jamais travaillé spécifiquement avec sg_io_hdr, mais le seul défi que je vois avec cette structure est le void * dxferp et le void * usr_ptr, mais je pense que vous pourriez gérer ceci en utilisant un IntPtr et en allouant un tampon assez grand pour la structure et les données supplémentaires pour l'annulation * si nécessaire. Ce n'est pas facile à expliquer dans un commentaire, mais j'ai fait un post il ya quelques années qui a fait quelque chose de similaire pour accéder à ListViewItem d'un autre processus, cela pourrait aider. http://taylorza.blogspot.com/2010/06/crossing-process-boundary-with-net.html, espérons que cela aide. –