FAQ C++/CLI et VC++.Net

FAQ C++/CLI et VC++.NetConsultez toutes les FAQ
Nombre d'auteurs : 29, nombre de questions : 248, création le 22 février 2013
Sommaire→Mixer du C++/CLI avec du code Win32 ou MFC→Inté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.
- soit par pragma :
#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 :
extern "C" __declspec(dllexport) int __stdcall addition(int a,int b);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 :
using System::Runtime::InteropServices;Et ensuite utiliser DLLImport.
using namespace System::Runtime::InteropServices;
[DllImport("testDll.dll")]
extern "C" int addition(int a,int b);



