Обертывание управляемого кода для неуправляемого использования
У нас есть большой проект 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, поэтому я мог не знать о некоторых практиках.
Спасибо