Неуправляемый указатель C++/CLI в конструкторе

Я хочу создать оболочку C++/CLI для некоторого класса C++.

Проблема в том, что я хочу, чтобы ref class инициировался со ссылкой на объект c++:

A (A& a);

Это прекрасно работает, пока оно находится в одной сборке и используется в одном проекте.

Но когда я пытаюсь сослаться на этот проект из другого проекта и инициирую ref-класс со ссылкой на объект оттуда, он не будет правильно распознавать типы и не распознает правильный конструктор.

Любые идеи о том, как это решить?


person Yochai Timmer    schedule 22.05.2011    source источник


Ответы (1)


Я не думаю, что вы сможете использовать ссылку на объект C++ в этом случае, но вы можете передать указатель на объект C++ через границы сборки, сохранив его в IntPtr, а затем извлекая его с помощью static_cast.

class nativeA; // Pre declaration

A (IntPtr a)
{
    nativeA * nativePtr = static_cast<nativeA*>(a.ToPointer());
    // Do something with nativeA
}
person mcdave    schedule 22.05.2011