Envoyé par
theMonz31
tu veux appeler du code C# depuis C++, soit... mais tu veux que l'appel de la fonction te retourne une valeur ?
Non pas besoin de retourner un valeur.
Envoyé par
theMonz31
Tu peux très bien faire un SendMessage et sur réception de ce message coté C#, déclencher une action.. Au final, cela aura le même effet...
Il me semble que le SendMessage travail sur la couche UI... alors que je veux faire directement des appels de fonction dans les couches "business".
Envoyé par
theMonz31
Il me semble que l'article n'explique pas comment appeler les fonctions c# même si la dernière question traite effectivement du sujet.
1 2 3 4 5
|
void DoSomethingWithDotNET(...) {
// call framework classes here
// safe from managed functions
} |
L'auteur dit que l'on peut ici appeler des classes du framework mais sans expliquer comment on le fait.
Sinon, j'ai regardé du côté de MSMQ. J'ai écris le bout de code suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
CMSMQApiWrapper ob;
//Create The Public Queue if it does not Exist
ob.CreatePublicQueue(_T("InboundRequests"),_T("InboundRequests"));
ob.SendStringMessage(_T("InboundRequests"),_T("test"),"ceci est un test");
CString szLabel, szMessage;
ob.ReadStringMessage(_T("InboundRequests"),szLabel,szMessage);
char * lbl = (char *)(LPCTSTR)szLabel;
char * msg = (char *)(LPCTSTR)szMessage;
printf(lbl);
printf(msg); |
En gros j'essaie de créer une queue, de rentrer un message dedans, de le récupérer et de l'afficher. J'utilise une classe helper que j'ai trouvée ici:
http://www.codeproject.com/KB/winsdk/msmq.aspx
Les méthodes SendStringMessage() et ReadStringMessage() essaient dans un premier temps de localiser la queue mais elles échouent sur cette ligne:
IMSMQQueryPtr query("MSMQ.MSMQQuery");
Saurais-tu pourquoi la classe ne peut pas être crée?
Partager