Appel d'une DLL écrite en C++ [VB.NET] - C#/.NET managed - Programmation
Marsh Posté le 12-06-2012 à 21:05:47
Les champs de ta structure C, sont déclarés en double (en général 8 octets). Tu les as déclarés "Long" en VB (probablement 4 octets). Ça ne me parait pas bon. Aussi le ByRef pour le dwSize me parait inutile.
Marsh Posté le 12-06-2012 à 12:13:19
Bonjour à tous,
Je me permet de venir poster ici car je galère à communiquer avec une DLL écrite en C++.
Pour situer le problème, je travaille pour une boite de micro-usinage laser et ma mission actuelle est d'écrire un soft permettant de piloter des axes X,Y,Z et Theta sur une nouvelle machine, fournie par un client allemand.
J'ai donc reçu une documentation, ainsi que certaines DLL qui permettent de piloter les différents axes. Mon soft est écris en VB.NET.
J'ai donc : Une DLL écrite en C++ par une personne inconnue, une documentation permettant de communiquer avec la DLL (avec des exemples en c++).
J'arrive a communiquer avec la dll sur certaines fonctions ne nécessitant pas d'arguments, ou juste une chaine de caractère.
Par exemple : voici l'appel de fonction en C :
(Je vous ai mis les code que j'ai au niveau du C++)
Ce qui me donne en VB.NET :
et pour l'appel :
(stringAxeConfig contient le path d'un fichier INI servant a initialiser la machine)
Donc pour cet appel pas de soucis !
Par contre, là ou je bloque c'est par exemple pour récupérer les positions des axes. Cela passe par une structure.
En C++ :
Structure de la position des axes :
et les fonctions :
J'ai également reçu un petit exemple en C++ qui permet de passer la structure en argument. Cela donne :
J'ai essayé donc de convertir en VB.NET ce qui donne :
déclaration de la structure :
Pour ce qui est de l'appel :
Et donc voila je suis bloqué à ce point la je n'arrive apparemment pas à convertir ce code en vb.net.
La structure passée dans l'appel de fonction ne me retourne rien.
Merci pour votre aide !
Bien à vous,
QuiGi
Message édité par QuiGon Gin le 12-06-2012 à 13:57:39