我正在使用托管 C++ 直接从 .NET 连接统计语言 R。我对托管 C++ 有点陌生,我需要做一些棘手的事情。用于传递给函数的结构有一个通用数据指针void*
,用于传递一些可用于稍后回调的有效负载数据。希望我解释过,这是 C/C++ 中一个很好用的模式。但是为了我的使用,我需要使用 that 传递一个托管对象,void *
我该怎么办?
我正在尝试:
BinaryWriter^ bs=gcnew......;
stream->data=(void*)(%bs);
但它不起作用。有什么帮助吗?
更新 这似乎有效,但不确定它是否是最好的方法:
pin_ptr<BinaryWriter^> p = &bs;
stream->data=(void*)p;