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
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);