A voir également:
- Visual Basic et C
- Visual basic - Télécharger - Langages
- Visual c++ 2019 - Guide
- Visual basic editor - Télécharger - Langages
- Visual petanque - Télécharger - Sport
- Microsoft 365 basic - Accueil - Microsoft Office
5 réponses
Bonjour,
Tu dis VB6 mais tu emploi l'expression windows form qui est plutôt un terme de VB.net ?
Quoi qu'il en soit, pour lier d'éventuelles fonctions tu peu faire des dll en C et les appleler depuis VB, l'nverse ne me semble pas possible.
A+
Tu dis VB6 mais tu emploi l'expression windows form qui est plutôt un terme de VB.net ?
Quoi qu'il en soit, pour lier d'éventuelles fonctions tu peu faire des dll en C et les appleler depuis VB, l'nverse ne me semble pas possible.
A+
Bonjour,
Effectivement tu peux faire des dll en C et les appeler depuis VB (VB.net).
L'inverse est également possible.
Cdlt,
Effectivement tu peux faire des dll en C et les appeler depuis VB (VB.net).
L'inverse est également possible.
Cdlt,
Bonjour fiddy,
L'inverse est également possible
Je ne suis pas tout à fait d'accors, bien que l'ont puisse faire des dll en VB, elle ne sont pas utilisable de la même façon qu'ine dll normale.
C'est à dire que les appel ne se font pas au moyen de déclaration mais en incluant un instance de la dll et en appellant directement ses fonctions.
A+
L'inverse est également possible
Je ne suis pas tout à fait d'accors, bien que l'ont puisse faire des dll en VB, elle ne sont pas utilisable de la même façon qu'ine dll normale.
C'est à dire que les appel ne se font pas au moyen de déclaration mais en incluant un instance de la dll et en appellant directement ses fonctions.
A+
Je ne suis pas tout à fait d'accors
Et pourtant, c'est tout possible.
Tu confonds probablement avec une DLL ActiveX. Si le VB permet plus facilement la création de cette dernière, effectivement elle ne marchera si on l'appelle comme une DLL normale. En fait, c'est qu'il n'existe pas de commutateur /DLL dans ce cas.
Néanmoins, avec un peu de travail, on peut très bien créer une DLL classique en VB.
Grosso modo, il faut créer un .def manuellement, intercepter l'appel au linker, et ajouter le fameux commutateur.
Et là, on aura une DLL classique, appelable depuis n'importe quel programme.
Cdlt,
Et pourtant, c'est tout possible.
Tu confonds probablement avec une DLL ActiveX. Si le VB permet plus facilement la création de cette dernière, effectivement elle ne marchera si on l'appelle comme une DLL normale. En fait, c'est qu'il n'existe pas de commutateur /DLL dans ce cas.
Néanmoins, avec un peu de travail, on peut très bien créer une DLL classique en VB.
Grosso modo, il faut créer un .def manuellement, intercepter l'appel au linker, et ajouter le fameux commutateur.
Et là, on aura une DLL classique, appelable depuis n'importe quel programme.
Cdlt,
C'est également mon avis.
D'autant plus que, je ne vois pas l'intérêt de faire une routine en VB et se compliquer le reste en C ^^. Soit on prend un langage de haute génération, et on y inclut des DLL faites dans des langages performants, soit on fait tout dans le langage de haute génération.
Il n'empêche que c'est bon de savoir que c'est possible, d'où mon intervention.
++
D'autant plus que, je ne vois pas l'intérêt de faire une routine en VB et se compliquer le reste en C ^^. Soit on prend un langage de haute génération, et on y inclut des DLL faites dans des langages performants, soit on fait tout dans le langage de haute génération.
Il n'empêche que c'est bon de savoir que c'est possible, d'où mon intervention.
++
IDEM:
J'ai déja utilisé dans un projet visual basic une DLL que j'avais créé en C affin d'implémenter un protocol réseau bas niveau (modbus / TCP) . Ce n'est pas particulièrement compliqué à faire dans la mesure ou on a des bases dans ces 2 langages.
A froid, je me rapelle d'un problème qui m'avais bien embété 'jusqu'à ce que j'identifie la cause): la taille des variables n'est pas forcément la même!
il me semble que le integer en VB6 correspondait au short en C++ ....
J'ai déja utilisé dans un projet visual basic une DLL que j'avais créé en C affin d'implémenter un protocol réseau bas niveau (modbus / TCP) . Ce n'est pas particulièrement compliqué à faire dans la mesure ou on a des bases dans ces 2 langages.
A froid, je me rapelle d'un problème qui m'avais bien embété 'jusqu'à ce que j'identifie la cause): la taille des variables n'est pas forcément la même!
il me semble que le integer en VB6 correspondait au short en C++ ....
Merci de vos réponse mais mon amis n'utilise pas .net.
Il utilise Visual Basic 6.0 le logiciel de Microsoft et moi j'utilise Code::Blocks.
Mais sinon si j'ai bien compris faut que je fasse des DLL en C et lui passer, ais-je bien compris ? et si oui ou doit-il les incorporé ensuite ?
Merci de vos réponse
I'm the game and I'm The King Of Kings
Il utilise Visual Basic 6.0 le logiciel de Microsoft et moi j'utilise Code::Blocks.
Mais sinon si j'ai bien compris faut que je fasse des DLL en C et lui passer, ais-je bien compris ? et si oui ou doit-il les incorporé ensuite ?
Merci de vos réponse
I'm the game and I'm The King Of Kings
Oui c'est ça.
Par contre, il y a un point qui me gène. Pourquoi tu souhaites faire des DLL en C ?
Par ailleurs, une fois que tu as fait tes DLL, tu devras faire un .def. De plus, il faut faire attention en C aux éventuelles décorations de la part des compilateurs qui te changent le nom des fonctions à exporter. Sinon ensuite, il peut mettre la DLL dans le répertoire system de windows, et l'appeler comme une DLL classique.
Cdlt,
Par contre, il y a un point qui me gène. Pourquoi tu souhaites faire des DLL en C ?
Par ailleurs, une fois que tu as fait tes DLL, tu devras faire un .def. De plus, il faut faire attention en C aux éventuelles décorations de la part des compilateurs qui te changent le nom des fonctions à exporter. Sinon ensuite, il peut mettre la DLL dans le répertoire system de windows, et l'appeler comme une DLL classique.
Cdlt,
A Nabla's
Oui, mais quand tu lances ton projet dans VB, ce ne sera pas le .exe se trouvant dans le répertoire du projet qui sera exécuté. Donc si tu mets la DLL dans le répertoire d' l'application tu risques d'avoir un joli message d'erreur stipulant "DLL introuvable". C'est pour ça que j'ai dit de mettre dans le répertoire système de Windows. Par contre, j'aurais pu rajouter le répertoire Windows.
Oui, mais quand tu lances ton projet dans VB, ce ne sera pas le .exe se trouvant dans le répertoire du projet qui sera exécuté. Donc si tu mets la DLL dans le répertoire d' l'application tu risques d'avoir un joli message d'erreur stipulant "DLL introuvable". C'est pour ça que j'ai dit de mettre dans le répertoire système de Windows. Par contre, j'aurais pu rajouter le répertoire Windows.
Petite précision, pas System, mais system32
Et autre avis..
Si cette dll ne doit servir que pour cette appli il est inutile de se casser la tête avec une dll. Si tu veux aider ton amis tu fais une dll ActiveX en VB6 et tu lui transmet le fichier "cls" non compiler qu'il n'aura que d'importer dans sont appli.
Juste quelques lignes de code à ajouter mais qui valent bien la simplicité qui en résulte.
Avantage, en cas de modif ou de bug il ne faudrait pas repasser par tout ces stades.
M'enfin.. c'est ce que moi je ferais,
Et autre avis..
Si cette dll ne doit servir que pour cette appli il est inutile de se casser la tête avec une dll. Si tu veux aider ton amis tu fais une dll ActiveX en VB6 et tu lui transmet le fichier "cls" non compiler qu'il n'aura que d'importer dans sont appli.
Juste quelques lignes de code à ajouter mais qui valent bien la simplicité qui en résulte.
Avantage, en cas de modif ou de bug il ne faudrait pas repasser par tout ces stades.
M'enfin.. c'est ce que moi je ferais,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question