none
Interop /CLR - Error LNK2028 RRS feed

  • Question

  • 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

     

    lundi 26 mars 2007 10:54

Toutes les réponses