У меня есть сторонняя коллекция .h файлов вместе с .lib файлами, которые идут вместе с ними. Я оборачиваю эти нативные файлы C ++ оболочкой C ++ / CLI и выполняю последние вызовы из C #. У меня есть проблема, когда я вызываю методы, которые ожидают передачи ссылки, когда значение не изменяется в моей оболочке, если я не изменю его явно.
Мой код оболочки C ++ / CLI в настоящее время выглядит следующим образом:
bool get_testInt16(int16% testInt16)
{
int16* t = static_cast<int16*>(GCHandle::ToIntPtr(GCHandle::Alloc(testInt16)).ToPointer());
bool b = m_NativeCMTY_TestData->get_testInt16(*t);
testInt16 = *t;
return b;
};
И соответствующий нативный код C ++ выглядит так:
bool get_testInt16(int16 &testInt16);
Я полагаю, что должен быть лучший способ, но, возможно, нет? Давай просто скажем, что я надеюсь, что есть лучший способ!