juin
2007
On vient de me poser une question : je veux utiliser cette structure en C dans mon programme C# typedef struct { int val; int telfixe[10][2]; } MASTRUCTURETEL; j’ai un peu modifié l’exemple pour que ce soit plus simple, mais la question porte sur le tableau à deux dimensions. Alors, comment faire ?
juin
2007
On connait les fichiers de configuration d’application (app.config) (si non, patience, dans la future version de la FAQ C++/CLI, il y a aura 2-3 entrées sur ce sujet). Il est très pratique d’y stocker les informations de configuration de l’application. Il peut être tentant d’y stocker par exemple des informations sensibles (un login/mot de passe, ou une chaine de connexion de base de données par exemple). Cependant, ces informations doivent être distribuées avec l’exécutable et […]
juin
2007
Le billet précédent présente une méthode qui simplifie grandement l’écriture de notre programme natif qui utilise un objet managé via COM Interop. La contrainte qu’il rajoute est la transformation des signatures des méthodes à la sauce COM. Ainsi, une méthode : String^ ReadLine(); sera wrappée en HRESULT ReadLine(/*[out,retval]*/ BSTR); Ce qui suggère l’utilisation de la macro SUCCEEDED pour tester la bonne marche de la fonction. Mais pouvons-nous encore simplifier et se passer de ce type […]
juin
2007
Si vous êtes allé au bout du précédent billet, je vous félicite. Je rappelle que le but est de pouvoir utiliser un objet .net depuis notre exe natif pur et de passer des paramètres à son constructeur via un wrapper CLI. Quand je re-regarde le code du billet, il me fait peur Tout ce code pour finalement si peu de choses… N’y aurait-il pas moyen de faire plus simple ? Forcément, si j’écris ca, c’est […]
juin
2007
Si la question est : « Peut-on passer des paramètres au constructeur d’un objet COM qui fait le wrapper d’une classe managée ? » La réponse est non ! Alors, comment faire par exemple si je veux utiliser la classe System::IO::StreamReader (par exemple) depuis mon programme natif ?
juin
2007
Pour continuer avec COM Interop, je vais vous montrer comment passer des paramètres à une méthode. soit la classe CLI suivante :
juin
2007
Il peut être parfois utile de pouvoir appeler du code managé depuis un programme complétement natif. Pour cela, plusieurs solutions dont une assez pratique à mettre en oeuvre : COM INTEROP. On utilise CCW (COM Callable Wrappers) qui est un mécanisme de .Net pour permettre à un client COM d’accéder à des objets managés à travers un proxy COM qui encapsule l’assembly managée. On peut voir ca comme un mécanisme de génération automatique de wrapper […]
juin
2007
De la même facon qu’on peut s’abonner à des événements managés depuis une classe C++/CLI (voir dans la faq C++/CLI), il est possible de s’abonner à des événements CLI depuis une classe native. Pour ce faire, nous avons besoin d’utiliser un des templates gcroot ou auto_gcroot et d’une macro un peu particulière : MAKE_DELEGATE
juin
2007
Le C++/CLI dispose du template auto_handle pour forcer la destruction d’un objet quand il sort de portée (il fonctionne comme le template auto_ptr du C++). Pour utiliser le template, on doit inclure : #include <msclr \auto_handle.h>
juin
2007
Hier, une question d’un forumeur pouvait se résumer ainsi (je change le texte et le code pour que ce soit plus simple, j’espère qu’il ne m’en voudra pas :p ) : Pourquoi est-ce que ca marche ? J’appelle une fonction sur un pointeur nul comme voici : #include <stdio .h> class A { public: void F() { printf("Impossible …"); } }; int main() { A * a = NULL; a->F(); return 0; }</stdio> […]
Commentaires récents
- [Tests] Arrange Act Assert, une traduction ? dans
- [UnitTest][C#] Tester une méthode privée dans
- Récupérer une valeur d’un contrôle depuis une autre Form / inclusions croisées et déclaration anticipée dans
- Tutoriel : Utiliser la ListBox et l’Isolated Storage dans vos applications Windows Phone 7 avec Silverlight dans
- Tutoriel : Utiliser la ListBox et l’Isolated Storage dans vos applications Windows Phone 7 avec Silverlight dans
Archives
- janvier 2013
- avril 2012
- janvier 2012
- juin 2011
- janvier 2011
- décembre 2010
- novembre 2010
- septembre 2010
- juin 2010
- mars 2010
- février 2010
- janvier 2010
- décembre 2009
- novembre 2009
- octobre 2009
- septembre 2009
- août 2009
- juillet 2009
- mai 2009
- avril 2009
- mars 2009
- janvier 2009
- décembre 2008
- novembre 2008
- octobre 2008
- septembre 2008
- août 2008
- juillet 2008
- juin 2008
- mai 2008
- avril 2008
- mars 2008
- février 2008
- janvier 2008
- décembre 2007
- novembre 2007
- octobre 2007
- septembre 2007
- août 2007
- juillet 2007
- juin 2007
- mai 2007