【发布时间】:2010-11-12 09:35:46
【问题描述】:
我正在努力将大量 .h 和 .lib 文件从原生 C++ 包装到托管 C++ 以最终用作 C# 中的引用 .dll。
一些本机 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())));
谁能提供解决方案?
【问题讨论】:
标签: c++-cli wrapper void-pointers