C# で参照される .dll として最終的に使用するために、多数の .h および .lib ファイルをネイティブ C++ からマネージド 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())));
誰でも解決策を提供できますか?