Récupérer les événements à partir d'une dll C++ et les gérer en VB.net

cs_FaresLa Messages postés 2 Date d'inscription mercredi 12 mai 2010 Statut Membre Dernière intervention 17 mai 2010 - 12 mai 2010 à 12:41
cs_FaresLa Messages postés 2 Date d'inscription mercredi 12 mai 2010 Statut Membre Dernière intervention 17 mai 2010 - 17 mai 2010 à 14:28
Bonjour,
Je travail sur vb.net Visual Basic 2008. Mon objectif c’est de créer mon propre namespace sur l’explorateur et gérer les événements comme sur Windows.
Pour la création du namespace j’utilise une dll en c++ et je peux gérer les événements en modifiant le code C++.
//comme sur la ligne suivante j’appelle la fonction Hello quand je fais un double click sur un dossier //dans le ListView
NOTIFY_CODE_HANDLER(LVN_ITEMACTIVATE, Hello)
Maintenant mon problème c’est de gérer les événements sur mon namespace à partir de l’ exe en vb.net.
Quand j’essaye d’ajouter la dll comme référence à mon projet Vb.net, il m’affiche le message suivant :
« une référence à ‘D:\…\Mydll.dll’ n’a pas pu être ajoutée. Assurez vous que ce fichier est accessible et qu'il s'agit d'un assembly ou d'un composant COM valide »
Donc j’ai du faire des déclarations des fonctions du dll pour pouvoir les utiliser dans vb :
Overloads Declare Sub Hello Lib _
"D:\ … \Debug\Mydll.dll" ()
Mais pour les évéenement je ne vois pas comment les récupérer sur vb.net.
J’espère que mon problème est claire pour que vous puissiez m’aider.
Merci à tous.

2 réponses

lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
12 mai 2010 à 15:39
Bonjour,

Je dirais :

Pointeur de fonction dans la dll.
Delegate dans le code .net.

Appel de Callback de la dll vers le projet .net

Bonne Prog
0
cs_FaresLa Messages postés 2 Date d'inscription mercredi 12 mai 2010 Statut Membre Dernière intervention 17 mai 2010
17 mai 2010 à 14:28
Bonjour,
merci beaucoup pour votre aide. mais ca reste encore flou pour moi . je suis débutant en C++, je m'en sert de la DLL c++ pour la création de mon namespace.
sur le code C++ j'arrive à gérer les événements. mais pour les invoker en vb.net c'est encore flou.
comme vous me l'avez dis, j'ai chercher à comprendre le callback et le pointeur de fonctions en C++, je comprend le principe de fonctionnement mais je ne comprend pas encore comment s'en servir pour récupérer l'événement en vb.net.
sur le code c++ il suffit d'implémenter ma fonction Hello par exemple, et je l'appelle à l'événement double click sur un dossier,
NOTIFY_CODE_HANDLER(LVN_ITEMACTIVATE, Hello)

voila qq exemples de Callback sur la DLL
static LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
static LRESULT CALLBACK StartWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
static INT_PTR CALLBACK StartDialogProc(HWND hWnd, UINT uMsg,
WPARAM wParam, LPARAM lParam);
static INT_PTR CALLBACK DialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

template <class TBase, class TWinTraits>
LRESULT CALLBACK CWindowImplBaseT< TBase, TWinTraits >::StartWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

template <class TBase, class TWinTraits>
LRESULT CALLBACK CWindowImplBaseT< TBase, TWinTraits >::WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

je ne comprend pas si je dois appeler ces callback en vb.net et si le cas comment reconnaitre les événements effectuée sur le namespace ou je dois implémenter mes propres callback pour les événements "NOTIFY_CODE_HANDLER(LVN_ITEMACTIVATE, Hello)"

merci pour votre aide
0
Rejoignez-nous