C ++ / CLI неуправляемый указатель в конструкторе - PullRequest
1 голос
/ 22 мая 2011

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

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

A (A& a);

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

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

Есть идеи, как решить эту проблему?

1 Ответ

1 голос
/ 22 мая 2011

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

class nativeA; // Pre declaration

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