Bonjour,

J'ai créé une solution contenant :
- un projet C#
- un project c++ (unmanaged) type dll, avec export

Dans le projet c++, j'ai une seul méthode, déclaré avec la macro générée par défaut

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
#define TEST_API __declspec(dllexport)
TEST_API int test();
depends.exe et dumpbin me montre tout d'eux ma méthode, qui est bien exportée. (avec le bon nom, j'ai mis la déclaration dans un extern "C")

Dans le projet C#, j'ai la déclaration de cette méthode, et un appel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
[DllImport("test.dll")]
private static extern int test();
A l'éxecution j'ai droit à :
Impossible de trouver le point d'entrée 'test' dans la DLL 'test.dll'.":"
Si j'ajoute EntryPoint = "test" -> pareil
par contre
si j'ajoute EntryPoint = "#1" // étant l'ordinal de ma méthode -> ça marche

Le pb est que ceci n'est qu'un prototype, et que j'aurai des 10ène de méthodes par la suite, je ne peux pas m'appuyer sur l'ordinal (étant "variable")

Je ne comprends pas pourquoi la méthode n'est pas trouvé par nom...


Si quelqu'un a déjà eu ce pb, une solution me ferai très plaisir

Merci !

.µAlexx.