У нас есть большой проект C ++, который скомпилирован как собственный неуправляемый код. Нам нужно использовать функцию из управляемого кода, но мы не хотим компилировать весь проект в /clr.
.
Итак, я создал DLL, у меня есть класс ref с именем B, который отображается в экспортированном собственном классе A. Проблема в том, что я получаю C1190: управляемому целевому коду требуется параметр '/ clr' из-за включения vcclr.h.
Я хотел бы знать, есть ли способ создать какой-то интерфейс, который будет иметь управляемый код в неуправляемых методах.
Вот мой код:
#pragma once
#include "EX_Port.h"
#include <vcclr.h>
ref class B;
class EX_API A
{
public:
A();
int DeviceCount();
private:
gcroot<B^> _device;
};
Мне удалось заставить его работать с помощью gcnew класса B внутри cpp. Но тогда у меня есть локальный объект, в то время как я хотел бы иметь его в глобальной области видимости. Я только начал заниматься программированием на CLI, поэтому я мог не знать о некоторых практиках.
Спасибо