Interaction entre vb6 et vb.net [Résolu]

Signaler
Messages postés
79
Date d'inscription
lundi 1 mars 2004
Statut
Membre
Dernière intervention
19 janvier 2012
-
Messages postés
79
Date d'inscription
lundi 1 mars 2004
Statut
Membre
Dernière intervention
19 janvier 2012
-
Bonjour a tous,
je viens de développer une dll en vb.net que je référence dans un projet vb6 (via le fichier Tlb)

Jusque la pas de problèmes. Je vois l'ensemble des fonctions et méthodes de ma dll vb.net et tout fonctionne correctement.

Par contre, si en vb6 j'appelle une méthode qui n'existe pas dans ma dll .net, vb6 ne me prévient pas qu'il y a une erreur dans mon code lorsque je fais F5. Par contre une fois qu'il arrive sur la ligne il génère une erreur.

Ma question est donc: Comment faire pour que vb6 voit que la fonction que j'appelle n'existe pas dans ma dll lorsque je fais F5?

Merci pour vos réponses
et je vous souhaite de bonnes fêtes

Billy21

7 réponses

Messages postés
79
Date d'inscription
lundi 1 mars 2004
Statut
Membre
Dernière intervention
19 janvier 2012

C'est bon j'ai trouvé comment faire. Pour chaque class, il faut mettre au début


<System.Runtime.InteropServices.ProgId("NomProject_NomDeLaClass")> _


<Runtime.InteropServices.ClassInterface(Runtime.InteropServices.ClassInterfaceType.AutoDual)> _

Ainsi si une fonction appellée depuis vb6 n'existe pas ds cette classe ou que le arguments ne sont pas compatibles, le CTRL F5 ne fonctionnera et mettra un message d'erreur

a bientôt

Billy21
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
salut,

ne fais pas F5 mais Ctrl+F5, pour forcer la pré-compilation
tu peux également modifier les options VB6 afin que la précompilation se fasse automatiquement (lors du simple F5)

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
79
Date d'inscription
lundi 1 mars 2004
Statut
Membre
Dernière intervention
19 janvier 2012

Merci d'avoir pris le temps de répondre.
mais le problème reste le meme avec CTRL+F5.

Si j'écris mal le nom d'une fonction de ma dll .net, lors de la pré compilation, je n'est aucun message d'erreur.
Je ne l'ai simplement au moment ou j'éxécute cette fonction (inexistante)

Billy21
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
ok comme une dll instanciée par createobject, donc pas de menu lors du DLL. c'est bien çà?
dans ce cas soit tu peux refaire la dll de manière à avoir le listing complet de la DLL avec F2 (je m'avance un peu sans savoir si c'est possible en dotnet), soit il reste peu de solution... une comme une autre est de créer une classe intermédiare, une sorte de wraper qui lui appellera les méthodes de la DLL avec la bonne orthographe.
là tu auras l'aide avec le CLASS. comme il faut

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
79
Date d'inscription
lundi 1 mars 2004
Statut
Membre
Dernière intervention
19 janvier 2012

Non,
en fait si je met le point, je vois bien l'ensemble de mes propriétés, méthodes et fonctions.
Mais, il se peut que je me trompe dans l'orthographe d'une fonction:
Ex: au lieu de mettre maDLL.GetName, je mette maDLL.GotName.

Lors du CTRL+F5, je devrais avoir un message d'erreur comme quoi la fonction n'existe pas. Mon problème, c'est que je ne l'ai pas. Donc je fais un make de mon projet sans problème. Par contre à l'execution du code la j'ai une erreur comme quoi la fonction n'existe pas (Normal)

Je cherche comment faire pour que mon make et mon CTRL+F5 ne fonctionne pas.

Merci

Billy21
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
umm, beh là c'estsur que si malgré l'aide tu en tapes pas le bon appel çà doit pas être facile de coder

nan désolé j'ai pas d'idée là, bizarre que tu puisses compiler mais comme tu testes avant, tu vois de suite d'où vient l'erreur ;)

à la limite prends le réflexe de l'auto-complete avec (pour l'exemple) DLL.G   CTRL+{SPACE}
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
79
Date d'inscription
lundi 1 mars 2004
Statut
Membre
Dernière intervention
19 janvier 2012

Ben merci d'avoir pris le temps de jeter un coup d'oeil a mon K.

Je vais essayer de me débrouiller. Si je trouve une solution, je la posterai et si quelqu'un a cette solution qu'il n'hésite pas.

Bonnes fetes a tous

Billy21