Ошибка ссылки при ссылке с управляемого на неуправляемый C ++, несмотря на ссылку на файл .lib с экспортированными символами
Несмотря на то, что я следую различным постам об использовании и ссылках на неуправляемый код C ++ из dll-оболочки C ++ / CLI, я не могу решить эти проблемы с ссылками.
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)
У меня есть неуправляемый родной C ++ dll с простым классом, соответственно экспортируя / импортируя символы
// MyClass.h
#ifdef _EXPORTING
#define DLL_PUBLIC __declspec(dllexport)
#else
#define DLL_PUBLIC __declspec(dllimport)
#endif
class DLL_PUBLIC MyClass { . . . };
И я вижу, что .dll и .lib файл компоновщика генерируется после сборки.
Затем у меня есть управляемый проект оболочки C ++ / CLI (также dll), который ссылается на MyClass.lib в настройке Linker-> Input-> Additional Dependencies. Также включил файл .h из MyClass в проект оболочки, и я вижу, что sln может видеть файл MyClass.h.
// MyClassAdaptor.h
#include "MyClass.h"
namespace WrapperLayer
{
public ref class MyClassAdaptor
{
. . .
private:
MyClass* _myclass;
};
}
Что может быть упущено?