Как экспортировать методы нативного класса, определенного в проекте C ++ / CLI?Вот что у меня есть:
.h файл:
#pragma once
#ifdef COMPILE_PRODUCER_LIB
#define PRODUCER_LIB_EXPORT __declspec(dllexport)
#else
#define PRODUCER_LIB_EXPORT __declspec(dllimport)
#endif
public class PRODUCER_LIB_EXPORT MySecondNativeClass {
public:
MySecondNativeClass(int val);
int getValue() const;
private:
int m_value;
};
.cpp файл:
#include "stdafx.h"
#include "MySecondNativeClass.h"
MySecondNativeClass::MySecondNativeClass(int val) {
this->m_value = val;
}
int MySecondNativeClass::getValue() const {
return this->m_value;
}
Использование этого класса в том же проекте работает нормально, ноиспользование его в другом (C ++ / CLI) проекте дает мне ошибки компоновщика «неразрешенный внешний символ».(COMPILE_PRODUCER_LIB
- это определение препроцессора, определенное только в проекте, который содержит класс.)
Я создал небольшое решение (для Visual Studio 2010), которое показывает проблему (загрузить в конце эта страница ).Там собственный класс MySecondNativeClass
определен в проекте "ManagedProviderLib" и используется в "ExternalTestClass.cpp" (в проекте "ManagedExternalLib").