Я хотел бы экспортировать свой C# класс с C++/CLI:Вызов C# класс от C++/CLI
Вот мой заголовок (.h) файл и мой .cpp
using namespace System;
using namespace Microsoft::Kinect;
using namespace std;
using namespace System::Runtime::InteropServices;
class clrPrivate;
class __declspec(dllexport) clr
{
private: clrPrivate* _private;
public: clr();
public: ~clr();
public: String^ calculate(Double* Robot_Points_Values[], CameraSpacePoint* human_point_cloud, unsigned char* bodyindexdata[]);
};
и мой. CPP файл
// This is the main DLL file.
#using "FULLPATH\MYDLL.dll"
#include <msclr\auto_gcroot.h>
#include "ClassLibrary4.h"
#include <array>
//#include "stdafx.h"
using namespace Distance_Test;
using namespace std;
using namespace System::Runtime::InteropServices;
using namespace Microsoft::Kinect;
using namespace System;
class clrPrivate
{
public: msclr::auto_gcroot<MINIMUM_DISTANCE^> out;
};
clrPrivate* _private;
clr::clr()
{
_private = new clrPrivate();
_private->out = gcnew MINIMUM_DISTANCE;
};
String^ clr::calculate(Double* Robot_Points_Values[], CameraSpacePoint* human_point_cloud, unsigned char* bodyindexdata[])
{
String^ output;
return output = _private->out->calculate(*Robot_Points_Values, *human_point_cloud, **bodyindexdata);
//return output = _private->out->value_return;
};
clr::~clr()
{
delete _private;
};
Когда я запускаю режим отладки он показывает мне 2 ошибки:
1) Ошибка C3395'clr :: высчитывает ': __declspec (dllexport) не может б е применяется к функции с __clrcall соглашения о вызове
2) Ошибки C2228 слева от «.value_return» должны иметь класс/структуры/объединение
я пытаюсь 2 дня теперь, чтобы найти решение, но я застрял. Если бы кто-то мог мне помочь, я был бы благодарен.