我正在将大量的.h和.lib文件从本机C ++包装到托管C ++,最终用作C#中引用的.dll。
某些本机C ++函数的返回类型为void *。当我将值传回给我的调用代码时,我不确定如何处理这个问题。例如:如果C#app调用我的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())));
有人能提供解决方案吗?