Trouver l’origine d’une fuite mémoire avec WinDbg

Lors de l’exécution d’une application, des fuites mémoires peuvent subvenir y compris dans un cadre managé. Dans les pires cas, trouver l’origine de ces fuites peut s’avérer compliqué car elles peuvent se produire dans des circonstances qu’on a du mal à identifier ou reproduire. Par exemple, ces fuites peuvent se produire dans un environnement de…

Continuer à lire

Aide-mémoire sur les pointeurs et références en C++

Le but de cet article est de rappeler quelques éléments de syntaxe sur les pointeurs et références en C++. Sommaire Déclaration par valeur Référence Pointeur Référence managée (en C++/CLI) Pointeur et réference dans les appels de fonctions Arguments de fonctions Retour de fonction Membres d’une classe Comparaison d’objets On considère la classe suivante: Point.h Point.cpp…

Continuer à lire

Appeler des dépendances C++ à partir d’un exécutable .NET AnyCPU

Il existe différentes méthodes pour appeler des dépendances natives à partir de .NET (cf. Appeler des DLL natives à partir de .NET). Ces méthodes ont en commun de devoir charger la bibliothèque native de façon à exécuter le code qui s’y trouve. Le chargement de DLL par l’application appelante implique que l’architecture de cette dernière…

Continuer à lire

Installer une assembly native dans WinSxS

Plusieurs méthodes sont possibles pour référencer des dépendances natives: consommer des dépendances en utilisant des bibliothèques statiques, des bibliothèques dynamiques, référencer un objet avec une interface COM etc… Suivant le cas d’utilisation, chacune de ces méthodes peut s’avérer plus intéressante qu’une autre. Par exemple, utiliser des bibliothèques dynamiques a le grand avantage d’apporter une modularité…

Continuer à lire

Appeler des DLL natives à partir de .NET

Parfois quand on veut effectuer un traitement particulier, utiliser un middleware propriétaire ou simplement utiliser une bibliothèque tiers, on ne dispose pas forcément d’assembly .NET permettant d’effectuer ce traitement et il peut être nécessaire d’effectuer des appels à une bibliothèque codée en C++. Cette bibliothèque native peut être livrée sous forme d’une bibliothèque statique (fichier…

Continuer à lire

Référencer une DLL C++ avec une bibliothèque statique d’import

Dans un projet en C++, quand on souhaite organiser le code dans différentes bibliothèques, on a le choix entre utiliser des bibliothèques statiques et dynamiques. Les bibliothèques statiques sont facilement intégrables dans un projet toutefois si on souhaite la mettre à jour, il faut recompiler tout le projet qui le consomme. Les bibliothèques dynamiques sont,…

Continuer à lire

C++/CLI en 10 min: Références

PARTIE 1 PARTIE 2 PARTIE 3 PARTIE 4 Préambule Rappels C++ Caractéristiques générales Syntaxe de base Syntaxe détaillée Références Références Livres: Microsoft Visul C++/CLI Step by Step: https://www.amazon.com/Microsoft-Visual-CLI-Step-Developer/dp/0735675171 Expert Visual C++/CLI: .NET for Visual C++ Programmers: https://www.amazon.com/Expert-Visual-CLI-Programmers-Experts/dp/1590597567 Sams Teach Yourself C# in 21 Days: https://www.amazon.fr/Sams-Teach-Yourself-21-Days/dp/0672320711 Généralités: C++/CLI Cheat Sheet: http://manski.net/2011/04/cpp-cli-cheat-sheet/ Introduction au monde du C++/CLI:…

Continuer à lire

C++/CLI en 10 min, partie 4: Syntaxe détaillée

PARTIE 1 PARTIE 2 PARTIE 3 PARTIE 4 Préambule Rappels C++ Caractéristiques générales Syntaxe de base Syntaxe détaillée Références Dans cette partie, on détaille la syntaxe d’autres éléments en C++/CLI. Sommaire nullptr typedefs namespace Héritage   Méthode virtuelle   Sealed Méthode statique et classe statique Classe abstraite Interface Les chaines de caractères   Chaines de caractères non managées…

Continuer à lire