FAQ C++/CLI et VC++.NetConsultez toutes les FAQ

Nombre d'auteurs : 29, nombre de questions : 248, création le 22 février 2013 

 
OuvrirSommaireMixer du C++/CLI avec du code Win32 ou MFCIntéropérabilité

Il s'agit de pouvoir utiliser une bibliothèque style C dans notre application. Pour ce faire, on va utiliser les mécanismes d'IJW, ce qui fait qu'on ne va pas avoir grand chose à faire.
On dispose en général d'un .h et d'un .lib livrés avec la dll.
Il faudra donc lier la lib. Pour ceci, deux solutions possibles :
- bouton droit sur le projet => properties => configuration properties => linker => input => additional depedencies, et ici, on rajoute le nom du .lib.

Image non disponible

- soit par pragma :

 
Sélectionnez

#pragma comment (lib, "laLib.lib")

Il ne restera plus qu'à inclure le .h correspondant, et on pourra utiliser les fonctions telles quelles.

NB : s'il n'y a pas de .h livré, on pourra toujours déclarer explicitement les prototypes dans notre application :

 
Sélectionnez

extern "C" __declspec(dllexport) int __stdcall addition(int a,int b);
Créé le 27 mars 2007  par nico-pyright(c)

Lien : Que faire avec l'erreur d'édition de liens LNK2031 ?
Lien : Introduction à l'intéropérabilité

Il est possible d'utiliser les mécanismes de P/Invoke pour charger des dll dynamiquement, grâce à l'attribut DllImport.

Il faudra référencer l'assembly InteropServices :

 
Sélectionnez

using System::Runtime::InteropServices;

Et ensuite utiliser DLLImport.

 
Sélectionnez

using namespace System::Runtime::InteropServices;
[DllImport("testDll.dll")]
extern "C" int addition(int a,int b);
Créé le 27 mars 2007  par nico-pyright(c)

Lien : Introduction à l'intéropérabilité

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006-2007 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.