Bonjour,
Je fait mon premier projet avec une DLL C++, une interface C#, et un wrapper C++/CLI entre les deux.
Pour l'instant, j'essaie simplement d'exécuter une fonction de la lib C++ native depuis le C#:
Voici la DLL C++
.h
.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #include <iostream> #include <string> namespace ExportCSVDLL { __declspec(dllexport) int exportCSV(int a); }
LeWrapper en C++/CLI
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 #include "ExportCSV.h"; int ExportCSVDLL::exportCSV(int a) { return 0; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #pragma once #include <string> #include <iostream> #include <vector> #include "ExportCSV.h" using namespace System; namespace ExportWrapper { public ref class ExportW { int doExportCSV(int a); }; }Et l'appel en C#
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include "stdafx.h" #include "ExportWrapper.h" using namespace ExportCSVDLL; using namespace System::IO; namespace ExportWrapper { int ExportW::doExportCSV(int a) { return exportCSV(a); } }
Le tout compile sans problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 // Instance sur wrapper ExportWrapper.ExportW export = new ExportWrapper.ExportW();// Export avec DLL C++ en par le wrapper int ret = export.doExportCSV(1);
Quand je fais appelle a doExportCSV dans le C#, j'ai un exception SEHException dans le Wrapper à l'appelle de la fonction de la DLL.
J'ai suivi le TUTO :
http://ensiwiki.ensimag.fr/index.php...en_C%2B%2B/CLI
Mais j'ai toujours l'exception. J'ai forcement fait une boulette, mais je ne trouve pas ou.
Un petit coup de main ?
Partager