Bonjour,
J'utilise un module CANfox (de chez sontheim) que je cherche à faire fonctionner avec un programme fait en vb.net. Il utilise une DLL (SIECA132.dll pour les plus curieux : https://www.sontheim-industrie-elekt...132_307_EN.pdf) écrite en C.
J'ai déjà fais pas mal de recherche pour reussir à le faire fonctionner, j'ai lu les articles "Utiliser les fonctions de l'API en Visual Basic" et "Créer des DLL en C compatibles avec VB 6" disponible sur le site et j'ai recherché les topic qui traitaient de mon sujet.
Au cours de mes recherches, j'ai vu que l'on pouvait utiliser les fonctions d'une DLL en la déclarant sous la forme :
[Private | Public] Declare Function | Sub publicname Lib "libname" [Alias " aliasname"] [([[ByVal] variable [As type] [,[ByRef] variable [As type]]...])] [As Type]
sauf que ma fonction est déclarée de la façon suivante:
long canOpen(long l_netnumber, long l_mode, long l_echoon, long l_txtimeout, long l_rxtimeout, const char* c_Applicationname, const char* c_ReceiverEvent, const char* c_ErrorEvent, void** handle);
et c'est là que le bât blesse, j'ai un void** en paramètre et je ne connais pas d'équivalent en VB...
J'ai vu qu'il fallait adapter les types de variables en fonction de leur taille :
VB 6 |
C / C++ |
Integer |
bool, short |
Long |
int, long |
N/A |
unsigned short, unsigned int, unsigned long |
Single |
float |
Double |
Double |
J'ai regardé les autres déclarations pour essayer de trouver une piste mais mis à part qu'il (handle) est utilisé dans quasiment toutes les autres fonctions (sous la forme void*) comme paramètre.
Est ce que quelqu'un connaitrait une solution pour resoudre mon problème de void**?
Sinon je pensais à faire un petit sous programme en C (que je lance depuis mon appli VB) qui utilise cette DLL pour récupérer mes trames et les stocker dans un fichier pour les relire après avec mon appli (chose que je n'ai encore jamais essayer en VB).
Si vous avez des pistes pour m'aider à avancer, je suis ouvert à toute proposition, merci d'avance
PS : j'ai aussi envisagé de lâcher le VB et de repartir sur du C++.
Partager