Verknüpfungsfehler beim Verknüpfen von verwaltetem zu nicht verwaltetem C ++ trotz Verknüpfung mit der LIB-Datei mit exportierten Symbolen

Obwohl ich verschiedene Beiträge zum Verwenden und Verknüpfen von nicht verwaltetem C ++ - Code mit einer C ++ / CLI-Wrapper-DLL befolge, kann ich diese Verknüpfungsprobleme nicht lösen.

1>MyClassAdapter.obj : error LNK2028: unresolved token (0A00000A) "public: __thiscall MyClass::~MyClass(void)" (??1MyClass@@$FQAE@XZ) referenced in function "public: void * __thiscall MyClass::`scalar deleting destructor'(unsigned int)" (??_GMyClass@@$FQAEPAXI@Z)
1>MyClassAdapter.obj : error LNK2028: unresolved token (0A00000B) "public: __thiscall MyClass::MyClass(void)" (??0MyClass@@$FQAE@XZ) referenced in function "public: __clrcall WrapperLayer::MyClassAdaptor::MyClassAdaptor(void)" (??0MyClassAdaptor@WrapperLayer@@$FQ$AAM@XZ)
1>MyClassAdapter.obj : error LNK2019: unresolved external symbol "public: __thiscall MyClass::MyClass(void)" (??0MyClass@@$FQAE@XZ) referenced in function "public: __clrcall WrapperLayer::MyClassAdaptor::MyClassAdaptor(void)" (??0MyClassAdaptor@WrapperLayer@@$FQ$AAM@XZ)
1>MyClassAdapter.obj : error LNK2019: unresolved external symbol "public: __thiscall MyClass::~MyClass(void)" (??1MyClass@@$FQAE@XZ) referenced in function "public: void * __thiscall MyClass::`scalar deleting destructor'(unsigned int)" (??_GMyClass@@$FQAEPAXI@Z)

Ich habe eine nicht verwaltete native C ++ - DLL mit einer einfachen Klasse, die Symbole entsprechend exportiert / importiert

// MyClass.h
#ifdef _EXPORTING
   #define DLL_PUBLIC __declspec(dllexport)
#else
   #define DLL_PUBLIC __declspec(dllimport)
#endif

class DLL_PUBLIC MyClass { . . . };

Und ich kann sehen, dass DLL- und LIB-Linkerdateien nach dem Erstellen generiert werden.

Dann habe ich das verwaltete C ++ / CLI-Wrapper-Projekt (auch eine DLL), die in der Einstellung Linker-> Input-> Additional Dependencies auf MyClass.lib verweist. Fügte auch die .h-Datei von MyClass in das Wrapper-Projekt ein, und ich kann sehen, dass sln die MyClass.h-Datei sehen kann.

// MyClassAdaptor.h

#include "MyClass.h"

namespace WrapperLayer
{
    public ref class MyClassAdaptor 
    { 
      . . . 
    private:
        MyClass* _myclass;  
    }; 
}

Was kann eventuell fehlen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage