Я работаю над переносом большого количества файлов .h и .lib из собственного C ++ в Managed C ++ для последующего использования в качестве ссылочного .dll в C #.
Некоторые из собственных функций C ++ имеют тип возврата void *. Я не уверен, как справиться с этим, когда я возвращаю значение в мой вызывающий код. Например: если приложение C # вызывает мою оболочку dll, что я возвращаю из родного вызова:
void* start(ThreadFunc,void *, unsigned *);
В настоящее время я безуспешно пытаюсь упаковать возврат в общий System :: Object ^. Это вызов в обертке:
m_NativeThread->start(cb,
GCHandle::ToIntPtr(GCHandle::Alloc(o)).ToPointer(),
static_cast<unsigned int*>(GCHandle::ToIntPtr(GCHandle::Alloc(u)).ToPointer())));
Может кто-нибудь предложить решение?