Je souhaite intégrer un UserControl réalisé en C# dans une application « classique » MFC. Le projet entier contient un .EXE et plusieurs DLLs.
Lors de la compilation des DLLs, les objets sont déclarés avec « _declspec(dllexport) »
Lors de la compilation de l’EXE, les objets sont déclarés avec « _declspec(dllimport) »
J’ai ajouté l’option /CLR uniquement dans le .EXE (les DLLs ont uniquement des objets métiers sans interface). Lorsque je compile la solution, j’obtiens l’erreur suivante :
Error LNK2028: unresolved token (0A0001A5) “public int __thiscall CXXX:Xxxx() …..”
Lorsque je compile sans l’option /CLR, tout fonctionne correctement.
L’aide sur l’erreur explique qu’en code natif, la convention d’appel est « __cdecl » et qu’en mode /clr :pure, la convention est « __clrcall ». Mais je ne suis pas en /clr :pure, uniquement en /CLR.
Avez-vous une idée pour résoudre ce problème ? Je ne peux malheureusement pas compiler toutes les DLL avec l’option /CLR car cela génère beaucoup d’erreur (se serait un travail relativement long et fastidieux à réaliser).
D’avance merci pour votre aide.
François